Git分支的操作
分支的創(chuàng)建及使用
分支的簡介
分支創(chuàng)建可以理解為復制一份主干程序,使得我們可以在復制版本上進行操作從而不影響主干程序的開發(fā)。git分支的創(chuàng)建使用了一種輕量級的創(chuàng)建方式,其本質是通過創(chuàng)建指針,指向上一個提交對象,這種方式可以免去對主干程序的復制操作,直接將分支的指針指向當前版本的主干程序即可。
分支的創(chuàng)建
$ git branch [name]
創(chuàng)建完后可以通過log命令中的--decorate參數查看,其中HEAD指向的是當前的分支,HEAD并不會指向剛創(chuàng)建的分支,需要進行分支的切換。
$ git log --oneline --decorate
cb54552 (HEAD -> master, testing)
分支切換
$ git checkout [name]
cb54552 (HEAD -> testing, master)
可以看到這樣就切換到了testing分支上
-b選項可以一步完成分支的創(chuàng)建和切換
$ git checkout -b [name]
注意:切換分支會將文件還原到該分支的狀態(tài),如在testing分支中修改了文件并提交,在master中的文件不會改變。
合并分支
如果項目遇到緊急問題需要修復,那么正確的操作步驟為:首先創(chuàng)建一個主干程序的分支,修改bug,提交,然后切換回主干合并分支。
$ git checkout -b hotfix
$ git commit -a -m
$ git checkout master
$ git merge hotfix
如果兩個分支沒有沖突,那么master的指針會直接移到剛剛修改的分支上,會出現一個Fast-Forward標記。
$ git merge hotfix
Updating 343849b..e2114d6
Fast-forward
11.txt | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
合并之后應該刪除剛剛創(chuàng)建的分支
$ git branch -d hotfix
如果有沖突git會告訴你沖突的文件是什么,然后需要手動修改沖突文件,再提交
分支的刪除
已和并的分支可以通過-d選項進行刪除
$ git branch -d [name]
未合并的分支則需要用-D來強制刪除
$ git branch -D [name]