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 分支操作

可以在不同分支间不断地来回切换和工作,并在时机成熟时进行分支合并。
项目分叉历史:

$ git log --oneline --decorate --graph --all

新建分支并同是切换到该分支上(带 -b 参数的 git checkout):

git checkout -b iss53
git
本作品采用《CC 协议》,转载必须注明作者和本文链接
不要试图用百米冲刺的方法完成马拉松比赛。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!