superwen
 Linux 内核开源项目有着为数众广的参与者。一开始  整个项目组BitKeeper 来管理和维护代码。 2005 年,  BitKeeper不再能免费使用,这就迫使 Linux 开源社区  开发一套属于自己的版本控制系统。 自诞生于 2...
 直接记录快照,而非差异比较。 近乎所有操作都是本地执行 时刻保持数据完整性 多数操作仅添加数据 文件的三种状态-已修改(modified)、已暂存 (staged)和已提交(committed)
 本地建立版本库 本地版本控制 多主机异地协同工作 重写提交说明 有后悔药可以吃 更好用的提交列表 更好的差异比较。 更完善的分支系统 代理SVN提交实现移动式办公 无处不在的分页器 速度快
 使用包安装,以centos为例  $ yum install git  $ yum install git-svn git-email git-gui gitk 使用源代码安装  从官网下载源码 http://git-scm.com   ...
 通过Cygwin安装(不建议)  http://www.cygwin.com 通过msysGit  http://code.google.com/p/msysgit  完成安装之后,就可以使用命令行的 git 工具(已经  自带了 ssh...
#查看版本$ git --version#配置$ git config --global user.name "John Doe"$ git config --global user.email johndoe@example.com//--s...
#在工作目录中初始化新仓库$ cd myproject$ git init#从现有仓库克隆,克隆完整数据,包括版本信息$ git clone git://github.com/schacon/grit.git$ git clone git://...
#跟踪新文件$ git add *.c#将文件添加到暂缓区,每次修改之后都需要将文件放到暂缓区去$ git add *.c#忽略某些文件#修改 .gitignore   *.a    # 忽略所有 .a 结尾的文件   !lib.a # 但 l...
#查看尚未暂存的文件更新了哪些部分$ git diff#查看暂存区文件和上次提交的快照之间的差异$ git diff --cached
#提交更新#每次准备提交前,先用 git status 看下,是不是都已暂#存起来了,然后再运行提交命令$ git commit$ git commit -m initial project version#跳过使用暂存区域$ git comm...
#移除文件$ git rm grit.gemspec#移除已经修改的文件$ git rm grit.gemspec-f#仅仅从暂缓区移除$ git rm grit.gemspec
#移除文件$ git rm grit.gemspec#移除已经修改的文件$ git rm grit.gemspec-f#仅仅从暂缓区移除$ git rm grit.gemspec#移动文件$ git mv file_from file_to
#查看提交历史$ git log-p 展开显示每次提交的内容差异-n 则仅显示最近的n次更新--stat,仅显示简要的增改行数统计--pretty=format:"%h - %an, %ar : %s"
#修改最后一次提交$ git commit -m initial commit$ git add forgotten_file$ git commit –amend#上面的三条命令最终只是产生一个提交.#取消已经暂存的文件$ git reset...
#查看当前的远程库$ git remote#显示对应的克隆地址(origin 为默认的远程库名称)$ git remote –v#添加远程仓库$ git remote add pb  git://github.com/paulboone/tic...
#从远程仓库抓取数据#fetch 命令只是将远端的数据拉到本地仓库,并不自动  合并到当前工作分支$ git fetch [remote-name]#推送数据到远程仓库$ git push origin master
#查看远程仓库信息$ git remote show origin#远程仓库的重命名$ git remote rename pb paul#远程仓库的删除$ git remote rm paul
#列显已有的标签$ git tag#列出符合条件的标签$ git tag -l v1.4.2.*
#新建标签#标签有两种类型:轻量级的(lightweight)和含附注  的(annotated)#创建一个轻量级标签$ git tag v1.4-lw#创建一个含附注类型的标签非常简单$ git tag -a v1.4 -m my versi...
#分享标签#默认情况下,git push 不会把标签传送到远端服务器$ git push origin v1.5#一次推送所有本地新增的标签$ git push origin --tags
#自动完成#Windows 上安装了 msysGit,默认已经配好了这个自  动完成脚本。#Linux 上$ cp {$GitHome}contrib/completion/git-  completion.bash /etc/bash_com...
#Git 命令别名$ git config --global alias.co checkout$ git config --global alias.br branch$ git config --global alias.last log ...
#创建分支$ git branch testing#切换到分支$ git checkout testing#创建并切换到分支$ git checkout -b testing
#与当前分支合并$ git merge testing#合并时难免有冲突#调用图形化工具解决冲突$ git mergetool#删除分支(不能删除一个未合并的分支)$ git branch -d testing#强制删除一个分支$ git br...
#查看分支$ git branch#查看分支最后一次提交的信息$ git branch -v#查看已经合并|尚未合并的分支$ git branch --merged|no-merged
#同步远程服务器上的数据到本地$ git fetch origin#推送本地分支$ git push origin serverfix#推送本地分支serverfix为origin的awesomebranch分支$ git push origi...
Git内部培训文档
Git内部培训文档
Git内部培训文档
Git内部培训文档
Git内部培训文档
Upcoming SlideShare
Loading in …5
×

Git内部培训文档

1,631 views
1,508 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,631
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
23
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Git内部培训文档

  1. 1. superwen
  2. 2.  Linux 内核开源项目有着为数众广的参与者。一开始 整个项目组BitKeeper 来管理和维护代码。 2005 年, BitKeeper不再能免费使用,这就迫使 Linux 开源社区 开发一套属于自己的版本控制系统。 自诞生于 2005 年以来,Git 日臻成熟完善,它的速度 飞快,极其适合管理大项目,它还有着令人难以置信 的非线性分支管理系统,可以应付各种复杂的项目开 发需求。
  3. 3.  直接记录快照,而非差异比较。 近乎所有操作都是本地执行 时刻保持数据完整性 多数操作仅添加数据 文件的三种状态-已修改(modified)、已暂存 (staged)和已提交(committed)
  4. 4.  本地建立版本库 本地版本控制 多主机异地协同工作 重写提交说明 有后悔药可以吃 更好用的提交列表 更好的差异比较。 更完善的分支系统 代理SVN提交实现移动式办公 无处不在的分页器 速度快
  5. 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. 6.  通过Cygwin安装(不建议) http://www.cygwin.com 通过msysGit http://code.google.com/p/msysgit 完成安装之后,就可以使用命令行的 git 工具(已经 自带了 ssh 客户端)了,另外还有一个图形界面的 Git 项目管理工具。 可视化工具TortoiseGit http://code.google.com/p/ tortoisegit
  7. 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. 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. 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
  10. 10. #查看尚未暂存的文件更新了哪些部分$ git diff#查看暂存区文件和上次提交的快照之间的差异$ git diff --cached
  11. 11. #提交更新#每次准备提交前,先用 git status 看下,是不是都已暂#存起来了,然后再运行提交命令$ git commit$ git commit -m initial project version#跳过使用暂存区域$ git commit -a
  12. 12. #移除文件$ git rm grit.gemspec#移除已经修改的文件$ git rm grit.gemspec-f#仅仅从暂缓区移除$ git rm grit.gemspec
  13. 13. #移除文件$ git rm grit.gemspec#移除已经修改的文件$ git rm grit.gemspec-f#仅仅从暂缓区移除$ git rm grit.gemspec#移动文件$ git mv file_from file_to
  14. 14. #查看提交历史$ git log-p 展开显示每次提交的内容差异-n 则仅显示最近的n次更新--stat,仅显示简要的增改行数统计--pretty=format:"%h - %an, %ar : %s"
  15. 15. #修改最后一次提交$ git commit -m initial commit$ git add forgotten_file$ git commit –amend#上面的三条命令最终只是产生一个提交.#取消已经暂存的文件$ git reset HEAD benchmarks.rb#取消对文件的修改$ git checkout -- benchmarks.rb
  16. 16. #查看当前的远程库$ git remote#显示对应的克隆地址(origin 为默认的远程库名称)$ git remote –v#添加远程仓库$ git remote add pb git://github.com/paulboone/ticgit.git
  17. 17. #从远程仓库抓取数据#fetch 命令只是将远端的数据拉到本地仓库,并不自动 合并到当前工作分支$ git fetch [remote-name]#推送数据到远程仓库$ git push origin master
  18. 18. #查看远程仓库信息$ git remote show origin#远程仓库的重命名$ git remote rename pb paul#远程仓库的删除$ git remote rm paul
  19. 19. #列显已有的标签$ git tag#列出符合条件的标签$ git tag -l v1.4.2.*
  20. 20. #新建标签#标签有两种类型:轻量级的(lightweight)和含附注 的(annotated)#创建一个轻量级标签$ git tag v1.4-lw#创建一个含附注类型的标签非常简单$ git tag -a v1.4 -m my version 1.4
  21. 21. #分享标签#默认情况下,git push 不会把标签传送到远端服务器$ git push origin v1.5#一次推送所有本地新增的标签$ git push origin --tags
  22. 22. #自动完成#Windows 上安装了 msysGit,默认已经配好了这个自 动完成脚本。#Linux 上$ cp {$GitHome}contrib/completion/git- completion.bash /etc/bash_completion.d/
  23. 23. #Git 命令别名$ git config --global alias.co checkout$ git config --global alias.br branch$ git config --global alias.last log -1 HEAD
  24. 24. #创建分支$ git branch testing#切换到分支$ git checkout testing#创建并切换到分支$ git checkout -b testing
  25. 25. #与当前分支合并$ git merge testing#合并时难免有冲突#调用图形化工具解决冲突$ git mergetool#删除分支(不能删除一个未合并的分支)$ git branch -d testing#强制删除一个分支$ git branch -D testing
  26. 26. #查看分支$ git branch#查看分支最后一次提交的信息$ git branch -v#查看已经合并|尚未合并的分支$ git branch --merged|no-merged
  27. 27. #同步远程服务器上的数据到本地$ git fetch origin#推送本地分支$ git push origin serverfix#推送本地分支serverfix为origin的awesomebranch分支$ git push origin serverfix:awesomebranch#删除远程分支$ git push origin:serverfix

×