Git 新一代版本控制系统 superwen.

Slides:



Advertisements
Similar presentations
Linux 环境及 Shell 程序 操作系统实验 1. 二、 Shell 编程与进程通信 常用 shell 命令 文件及文件属性操作 ls 、 cp 、 mv 、 rm ln 、 ln –s 、 chmod 、 groupadd 、 useradd 输入输出操作 echo 、 cat >> 、
Advertisements

我的未来不是梦 攀枝花市经贸旅游学校. 1. 文中案例王萍苦恼的原因是 什么? 2. 你有哪些办法可以帮助王萍? 导入 思考  谁来帮帮她?
縮短公共工程工期之 招標決標策略及作法 行政院公共工程委員會 1. 簡報大綱 壹、前言 貳、招標決標策略及作法 参、適用案件類型 肆 、 結語 2.
版本控制的史前时代 用存储介质拷贝代码 代码相互覆盖,不知道哪个版本是正确的 搞错了无法恢复,需要定期手工备份
Linux 安裝入門與基本管理 課程目標: 學習Linux平台下的安裝設定 與 建置一個基本的Linux伺服器
《3-6岁儿童学习与发展指南》概述.
时间与我们的世界 Pb 段心蕊.
智慧財產權 智慧財產權法制的立法目的,在於透過法律,賦與創作或發明人專有排他的權利,使其得自行就其智慧成果加以利用,或授權他人利用,以獲取經濟上或名譽上的利 益,同時也可以鼓勵有能力創作發明的人,願意投入時間、金錢及精神,進行研究、開發、完成更多更好的人類智慧成果,提供社會大眾利用,進而提昇人類經濟、
红旗Linux认证培训 课程介绍.
自 然 探 索 圓周美語 My name is.
中華民國空軍34中隊進行夜間偵察任務情形與畫伏夜出的蝙蝠相同,因此以「蝙蝠中隊」命名,而所屬偵察機均漆成黑色,而又稱作「黑蝙蝠」。隊徽是一隻展翅的黑蝙蝠,在北斗七星上飛翔於深藍的夜空中,翅膀穿透外圍的紅圈,象徵潛入赤色鐵幕。
香港普通話研習社科技創意小學 周順強老師.
年度校樹選拔秀 主辦單位:楊梅國小.
唐五代兩宋詞 方舟p.69.
MHA(Master High Availability) 作者
贴近教学 服务师生 方便老师.
定风波.
义务教育新课程标准实验教科书 九年级历史下册课堂教学设计
資訊安全與系統管理 2013/3/13 Chien wei lin.
台北市南港區玉成國民小學六年一班徐湘雯製作
UNIX系統與資料庫安裝 Why UNIX 常用的工具程式介紹 資料庫的安裝.
克薩技術 vs 傳統配種 克薩人.
臺北市立松山家商 103學年度第1學期 學校日 教學說明 簡報
Subversion (SVN) Presented by 李明璋 R /2/21
歡迎蒞臨 一年二班家長日.
第 2 章 上機使用 Unix/Linux 內容: 操作介面 主機連線 登入主機 認識系統環境 使用者常用命令.
本章导读 Webmin简介 Webmin的安装和配置 停止和启动Webmin服务 使用Webmin配置Samba服务
OpenFoundry.org 版本控制系統服務 使用教學
GitHub 2015/10/28 鄭雅馨.
GERRIT使用说明 配置管理-高峰
开源软件分布式版本控制器 GIT Linus的第二个伟大作品 演讲者:喻鹏.
本节我们结合AD5724驱动时序给大家介绍一下状态机在实际工程中的使用。
从入门到实践.
编译与多文件.
第二天 计算机基础技能培训 (一)linux基础知识
Introduction to Git Lu Li
本节我们结合AD5724驱动时序给大家介绍一下状态机在实际工程中的使用。
欢乐玩转GIT 讲师:FREE QQ:
An introduction to Subversion
Git介绍 邹琼俊.NET码农 博客园博客地址
伺服器探索營 Day 1 指導老師: 張啟中 (JohnAxer) 教學助理:
日构建
欢乐玩转GIT 讲师:FREE QQ:
Windows與Linux資源共享 SAMBA
Linux核心編譯與模組管理 2013/01/19.
Git & github By 宋正倫 (修訂by jmchen).
编辑文本文件 软件包管理 Samba 在Linux下使用Windows共享打印机
Feature and function introduction to GIT & Linux June 22, 2013
环境配置及使用.
Linux 如何在 中 和压缩 打包 文件 系统管理 宁波市高校慕课联盟课程
黑快馬 RPAGE 厚德國小 資訊組 康家豪.
第二章 UNIX系统安装与常用命令.
Confidential Property
中華大學 資訊工程學系 報告人:資訊工程學系 許慶賢 系主任.
Git使用入门 —johnson.
香港傳統的農村生活.
UNIX指令-檔案與目錄操作.
颱風與防災 颱風知多少.
Linux 服务器配置与管理 用yum管理 软件包 宁波城市职业技术学院
实验一:编译运行Linux内核并使用gdb进行调试
議題: 複製人.
如何連上工作站 WorkStations: 1. Solaris 2. Linux Use X-Win32 (for Solaris)
高级大数据人才培养丛书之一,大数据挖掘技术与应用
Git使用简介 rainzha
大数据应用人才培养系列教材 Python语言 刘 鹏 张 燕 总主编 李肖俊 主编 刘 河 钟 涛 副主编.
劉庠宏、林合治編著 國立高雄大學應用數學系 2005年3月1日
第六章 文件系统与文件管理 6.4 Linux文件管理 1、比较MS DOS 与 Linux的目录结构 一、Linux文件系统的树形结构
Concurrent Versions System (CVS)
Presentation transcript:

Git 新一代版本控制系统 superwen

Git 简史 Linux 内核开源项目有着为数众广的参与者。一开始 整个项目组BitKeeper 来管理和维护代码。 2005 年, BitKeeper不再能免费使用,这就迫使 Linux 开源社区 开发一套属于自己的版本控制系统。 自诞生于 2005 年以来,Git 日臻成熟完善,它的速度 飞快,极其适合管理大项目,它还有着令人难以置信 的非线性分支管理系统,可以应付各种复杂的项目开 发需求。

Git 基础 直接记录快照,而非差异比较。 近乎所有操作都是本地执行 时刻保持数据完整性 多数操作仅添加数据 文件的三种状态-已修改(modified)、已暂存 (staged)和已提交(committed)

为什么要使用Git 本地建立版本库 本地版本控制 多主机异地协同工作 重写提交说明 有后悔药可以吃 更好用的提交列表 更好的差异比较。 更完善的分支系统 代理SVN提交实现移动式办公 无处不在的分页器 速度快

在Linux下安装Git 使用包安装,以centos为例 $ yum install git $ yum install git-svn git-email git-gui gitk 使用源代码安装 从官网下载源码 http://git-scm.com $ tar –jxvf git-version.tar.bz2 $ cd git-version $ make prefix=/usr/local all $ sudo make install prefix=/usr/local

在Windows下安装Git(Cygwin) http://www.cygwin.com 通过msysGit http://code.google.com/p/msysgit 完成安装之后,就可以使用命令行的 git 工具(已经 自带了 ssh 客户端)了,另外还有一个图形界面的 Git 项目管理工具。 可视化工具TortoiseGit http://code.google.com/p/ tortoisegit

Git 的配置 #查看版本 $ git --version #配置 $ git config --global user.name "John Doe" $ git config --global user.email johndoe@example.com //--system 系统配置 //--global 该用户的全局配置 #查看配置信息 $ git config --list $ git config user.name #获取帮助,任意一个都可以 $ git help config $ git config --help $ man git-config

Git 的初始化新仓库 #在工作目录中初始化新仓库 $ cd myproject $ git init #从现有仓库克隆,克隆完整数据,包括版本信息 $ git clone git://github.com/schacon/grit.git $ git clone git://github.com/schacon/grit.git mygrit #检查当前文件状态 $ git status

Git 的跟踪文件 #跟踪新文件 $ git add *.c #将文件添加到暂缓区,每次修改之后都需要将文件放到暂缓区去 #忽略某些文件 #修改 .gitignore *.a # 忽略所有 .a 结尾的文件 !lib.a # 但 lib.a 除外 /TODO # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO build/ # 忽略 build/ 目录下的所有文件 doc/*.txt # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt

Git 的比较 #查看尚未暂存的文件更新了哪些部分 $ git diff #查看暂存区文件和上次提交的快照之间的差异 $ git diff --cached

Git 的提交更新 #提交更新 #每次准备提交前,先用 git status 看下,是不是都已暂 #存起来了,然后再运行提交命令 $ git commit $ git commit -m 'initial project version' #跳过使用暂存区域 $ git commit -a

Git 的移除文件 #移除文件 $ git rm grit.gemspec #移除已经修改的文件 $ git rm grit.gemspec-f #仅仅从暂缓区移除

Git 的移除文件 #移除文件 $ git rm grit.gemspec #移除已经修改的文件 $ git rm grit.gemspec-f #仅仅从暂缓区移除 #移动文件 $ git mv file_from file_to

Git 的查看提交历史 #查看提交历史 $ git log -p 展开显示每次提交的内容差异 -n 则仅显示最近的n次更新 --stat,仅显示简要的增改行数统计 --pretty=format:"%h - %an, %ar : %s"

Git 的修改最后一次提交 #修改最后一次提交 $ git commit -m 'initial commit' $ git add forgotten_file $ git commit –amend #上面的三条命令最终只是产生一个提交. #取消已经暂存的文件 $ git reset HEAD benchmarks.rb #取消对文件的修改 $ git checkout -- benchmarks.rb

Git 的远程仓库 #查看当前的远程库 $ git remote #显示对应的克隆地址(origin 为默认的远程库名称) $ git remote –v #添加远程仓库 $ git remote add pb git://github.com/paulboone/ticgit.git

Git 的远程仓库 #从远程仓库抓取数据 #fetch 命令只是将远端的数据拉到本地仓库,并不自动 合并到当前工作分支 $ git fetch [remote-name] #推送数据到远程仓库 $ git push origin master

Git 的远程仓库 #查看远程仓库信息 $ git remote show origin #远程仓库的重命名 $ git remote rename pb paul #远程仓库的删除 $ git remote rm paul

Git 的标签 #列显已有的标签 $ git tag #列出符合条件的标签 $ git tag -l 'v1.4.2.*'

Git 的标签 #新建标签 #标签有两种类型:轻量级的(lightweight)和含附注 的(annotated) #创建一个轻量级标签 $ git tag v1.4-lw #创建一个含附注类型的标签非常简单 $ git tag -a v1.4 -m 'my version 1.4'

Git 的标签 #分享标签 #默认情况下,git push 不会把标签传送到远端服务器 $ git push origin v1.5 #一次推送所有本地新增的标签 $ git push origin --tags

Git 的技巧和窍门 #自动完成 #Windows 上安装了 msysGit,默认已经配好了这个自 动完成脚本。 #Linux 上 $ cp {$GitHome}contrib/completion/git- completion.bash /etc/bash_completion.d/

Git 的技巧和窍门 #Git 命令别名 $ git config --global alias.co checkout $ git config --global alias.br branch $ git config --global alias.last 'log -1 HEAD'

Git 的分支 #创建分支 $ git branch testing #切换到分支 $ git checkout testing #创建并切换到分支 $ git checkout -b testing

Git 的分支

Git 的分支

Git 的分支 #与当前分支合并 $ git merge testing #合并时难免有冲突 #调用图形化工具解决冲突 $ git mergetool #删除分支(不能删除一个未合并的分支) $ git branch -d testing #强制删除一个分支 $ git branch -D testing

Git 的分支

Git 的分支

Git 的分支 #查看分支 $ git branch #查看分支最后一次提交的信息 $ git branch -v #查看已经合并|尚未合并的分支 $ git branch --merged|no-merged

Git 的分支 #同步远程服务器上的数据到本地 $ git fetch origin #推送本地分支 $ git push origin serverfix #推送本地分支serverfix为origin的awesomebranch分支 $ git push origin serverfix:awesomebranch #删除远程分支 $ git push origin:serverfix

Git 的服务器上的 Git