在分支上工作
在上一篇文章《Git之不明覺厲3》中小伙伴克隆了一個倉庫颠悬,前面我們的操作都是在master分支上的矮燎,一般來說,我們開展一個新的工作赔癌,都需要建立一個新的branch诞外,git的branch非常的高效率,所以可以反復(fù)的創(chuàng)建和切換灾票。但是說了這么多峡谊,到底啥才是branch啊刊苍?
分支是啥
A branch represents an independent line of development. Branches serve as an abstraction for the edit/stage/commit process
從字面上理解分支也是可以的既们,上面的英文翻譯一下,分支就是一條單獨的開發(fā)線路正什。
上圖的Little Feature啥纸,Master,Big Feature都是分支婴氮。圖上的箭頭指向了分支的最后一個commit
使用分支
- 創(chuàng)建分支
git branch tiger
創(chuàng)建了一個名字叫tiger的分支
- 查看分支
git branch
- 切換分支
git checkout tiger
- 增加文件
我們在新分支上提交一個文件斯棒。
echo "I like tiger" > tiger.txt
git add tiger.txt
git commit -m "create tiger file"
- 文件在master分支中存在嗎馒索?
我們可以看到文件在master中并不存在,我們每創(chuàng)建一個新的branch名船,都有一個新的working directory, staging area, and project history
如果我們查看log绰上,也會發(fā)現(xiàn)master中沒有tiger中的commit
合并
我們現(xiàn)在切換回master分支之后,看不到tiger分支里面的修改了渠驼,我們可以使用合并操作蜈块,來合并兩個分支
git merge tiger
現(xiàn)在我們可以看到文件tiger.txt了
merge有兩種形式,我們看一下
- fast-forward merge
我們從上圖可以看到master到some feature有一條線路可以走迷扇,只有移動master的HEAD就可以了
- 3-way merge
從圖上可以看到百揭,master向前沒有一條線路可以走到some feature,所以創(chuàng)建一個新的commit蜓席,把master的HEAD移動過去器一。上圖的紅圈表示三個commit合成了最后merge的commit
詳細資料可以查看git-merge
刪除
我們切換到master了,如果覺得tiger分支沒有用厨内,那么可以刪除它
git branch -d tiger