More Related Content
Similar to Git内部培训文档 (20)
Git内部培训文档
- 2. Linux 内核开源项目有着为数众广的参与者。一开始
整个项目组BitKeeper 来管理和维护代码。 2005 年,
BitKeeper不再能免费使用,这就迫使 Linux 开源社区
开发一套属于自己的版本控制系统。
自诞生于 2005 年以来,Git 日臻成熟完善,它的速度
飞快,极其适合管理大项目,它还有着令人难以置信
的非线性分支管理系统,可以应付各种复杂的项目开
发需求。
- 4. 本地建立版本库
本地版本控制
多主机异地协同工作
重写提交说明
有后悔药可以吃
更好用的提交列表
更好的差异比较。
更完善的分支系统
代理SVN提交实现移动式办公
无处不在的分页器
速度快
- 5. 使用包安装,以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
- 6. 通过Cygwin安装(不建议)
http://www.cygwin.com
通过msysGit
http://code.google.com/p/msysgit
完成安装之后,就可以使用命令行的 git 工具(已经
自带了 ssh 客户端)了,另外还有一个图形界面的 Git
项目管理工具。
可视化工具TortoiseGit
http://code.google.com/p/ tortoisegit
- 7. #查看版本
$ 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
- 8. #在工作目录中初始化新仓库
$ cd myproject
$ git init
#从现有仓库克隆,克隆完整数据,包括版本信息
$ git clone git://github.com/schacon/grit.git
$ git clone git://github.com/schacon/grit.git mygrit
#检查当前文件状态
$ git status
- 9. #跟踪新文件
$ git add *.c
#将文件添加到暂缓区,每次修改之后都需要将文件放到暂缓区去
$ 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
- 12. #移除文件
$ git rm grit.gemspec
#移除已经修改的文件
$ git rm grit.gemspec-f
#仅仅从暂缓区移除
$ git rm grit.gemspec
- 13. #移除文件
$ git rm grit.gemspec
#移除已经修改的文件
$ git rm grit.gemspec-f
#仅仅从暂缓区移除
$ git rm grit.gemspec
#移动文件
$ git mv file_from file_to
- 14. #查看提交历史
$ git log
-p 展开显示每次提交的内容差异
-n 则仅显示最近的n次更新
--stat,仅显示简要的增改行数统计
--pretty=format:"%h - %an, %ar : %s"
- 15. #修改最后一次提交
$ git commit -m 'initial commit'
$ git add forgotten_file
$ git commit –amend
#上面的三条命令最终只是产生一个提交.
#取消已经暂存的文件
$ git reset HEAD benchmarks.rb
#取消对文件的修改
$ git checkout -- benchmarks.rb
- 23. #Git 命令别名
$ git config --global alias.co checkout
$ git config --global alias.br branch
$ git config --global alias.last 'log -1 HEAD'
- 24. #创建分支
$ git branch testing
#切换到分支
$ git checkout testing
#创建并切换到分支
$ git checkout -b testing
- 27. #与当前分支合并
$ git merge testing
#合并时难免有冲突
#调用图形化工具解决冲突
$ git mergetool
#删除分支(不能删除一个未合并的分支)
$ git branch -d testing
#强制删除一个分支
$ git branch -D testing
- 31. #同步远程服务器上的数据到本地
$ git fetch origin
#推送本地分支
$ git push origin serverfix
#推送本地分支serverfix为origin的awesomebranch分支
$ git push origin serverfix:awesomebranch
#删除远程分支
$ git push origin:serverfix