Git之不明觉厉4-在分支上工作

在分支上工作

在上一篇文章《Git之不明觉厉3》中小伙伴克隆了一个仓库,前面我们的操作都是在master分支上的,一般来说,我们开展一个新的工作,都需要建立一个新的branch,git的branch非常的高效率,所以可以反复的创建和切换。但是说了这么多,到底啥才是branch啊?

分支是啥

A branch represents an independent line of development. Branches serve as an abstraction for the edit/stage/commit process

从字面上理解分支也是可以的,上面的英文翻译一下,分支就是一条单独的开发线路。

Git之不明觉厉4-在分支上工作_第1张图片
Paste_Image.png

上图的Little Feature,Master,Big Feature都是分支。图上的箭头指向了分支的最后一个commit

使用分支

  1. 创建分支
git branch tiger

创建了一个名字叫tiger的分支

  1. 查看分支
git branch
  1. 切换分支
git checkout tiger
  1. 增加文件
    我们在新分支上提交一个文件。
echo "I like tiger" > tiger.txt
git add tiger.txt
git commit -m "create tiger file"
  1. 文件在master分支中存在吗?
    我们可以看到文件在master中并不存在,我们每创建一个新的branch,都有一个新的working directory, staging area, and project history
Git之不明觉厉4-在分支上工作_第2张图片
Paste_Image.png

如果我们查看log,也会发现master中没有tiger中的commit

合并

我们现在切换回master分支之后,看不到tiger分支里面的修改了,我们可以使用合并操作,来合并两个分支

git merge tiger

现在我们可以看到文件tiger.txt了


Paste_Image.png

merge有两种形式,我们看一下

  • fast-forward merge
Git之不明觉厉4-在分支上工作_第3张图片
Paste_Image.png

我们从上图可以看到master到some feature有一条线路可以走,只有移动master的HEAD就可以了

  • 3-way merge

Git之不明觉厉4-在分支上工作_第4张图片
Paste_Image.png

从图上可以看到,master向前没有一条线路可以走到some feature,所以创建一个新的commit,把master的HEAD移动过去。上图的红圈表示三个commit合成了最后merge的commit
详细资料可以查看 git-merge

删除

我们切换到master了,如果觉得tiger分支没有用,那么可以删除它

git branch -d tiger

你可能感兴趣的:(Git之不明觉厉4-在分支上工作)