Git 分支操作
Git 分支中的对象
每个 add
为一个 「blob」 文件快照的对象,暂存操作会为每一个文件计算校验和(SHA-1 哈希算法)。
「tree」 为目录结构和 blob 对象索引。
commit obj 指向 tree obj,tree obj 指向 blob objs。master
为 Git 默认分支,是 git init
默认创建的。
「HEAD」为特殊指针,指向当前所在的本地分支。
Git 分支命令
分支创建:
$ git branch testing
查看各分支当前所指的对象:
@ git log --oneline --decorate
分支切换(使 HEAD 指向 testing 分支):
$ git checkout testing
再提交一次:
$ vim test.rb
$ git commit -a -m 'made a change'
这时,testing 分支向前移动,但是 master 分支没有,它仍然指向运行 git checkout
时所指向的对象,切换回 master 分支:
$ git checkout master
checkout master
使得「HEAD」指回 master
分支,将工作目录恢复成 master
所指向的快照内容。这就是忽略了 testing
分支所做的修改,可以向另一个方向进行开发。
分支切换会改变你工作目录中的文件。
$ vim test.rb
$ git commit -a -m 'made other changes'
可以在不同分支间不断地来回切换和工作,并在时机成熟时进行分支合并。
项目分叉历史:
$ git log --oneline --decorate --graph --all
新建分支并同是切换到该分支上(带 -b
参数的 git checkout
):
git checkout -b iss53
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: