假定git库中有三个文件:README 、test.rb 、LICENSE2。
git库存储三个文件的结构如下:
每一次提交(commit),都会产生一个提交记录,并有一个指针指向前一个提交记录。对git库多次提交(commit)后,库的记录结构如下:
一个分支,即为一个指针,指向某个提交记录。默认的分支为主分支(master)
现在,创建一个名为testing的分支(此时只是创建了指向当前提交记录的指针):git branch testing
为了让git知道用户当前处于哪个分支进行工作,引入了指针HEAD,指向当前工作的分支
需要转至另一个分支进行工作时,使用指令:git checkout testing
在testing分支下,修改文件test.rb并提交:vim test.rb; git commit -a -m ’made a change’
在需要的时候,可以切换到master分支,对其进行编辑:git checkout master
在master分支下,修改文件test.rb并提交:vim test.rb; git commit -a -m ’made other changes’
分支master合并(merge)分支testing: git merge testing
删除不必要的分支:git branch -d testing
将分支push到github上:
git push origin new_branch_name
附:本文参考《Pro Git 2009》Page 43--55