當你開發專案的時候,需要不同的版本,如果不想一直在乙個專案裡邊做修改,這時候就可以使用分支。在不同分支上邊 開發可以相互不影響,需要的時候可以切換到不同的分支進行工作。同個小組不同的成員可以在不同的分支針對不同的功能進行開發,需要時進行分支合併即可。
2.1 分支的新建與合併
首先建立乙個名為test的分支並切換到該分支:
$ git branch test
$ git checkout test
實現上述要求還有另外一種形式:
$ git checkout -b test
然後,我們可以檢視當前所在分支:git branch
,前面帶*的為當前所在分支。接下來切換回master分支並將test合併:
$ git checkout master
$ git merge test
最後,兩個分支已經合併成功,將test分支刪除:
$ git checkout -d test
2.2 遇到衝突時的分支合併
有時候合併操作並不會如此順利。如果在不同的分支中都修改了同乙個檔案的同一部分,git 就無法乾淨地把兩者合到一起(譯註:邏輯上說,這種問題只能由人來裁決)。例如:如果你在開發的過程中同時在兩個分支修改了同個版本的a檔案,將得到類似下面的結果:
$ git merge test
auto-merging a
conflict (content): merge conflict in a
automatic merge failed; fix conflicts and then commit the result.
git 作了合併,但沒有提交,它會停下來等你解決衝突。要看看哪些檔案在合併時發生衝突,可以用git status
查閱:
[master*]$ git status
a: needs merge
# on branch master
# changes not staged for commit:
# (use "git add ..." to update what will be committed)
# (use "git checkout -- ..." to discard changes in working directory)
## unmerged: a
#
任何包含未解決衝突的檔案都會以未合併(unmerged)的狀態列出。git 會在有衝突的檔案裡加入標準的衝突解決標記,可以通過它們來手工定位並解決這些衝突。可以看到此檔案包含類似下面這樣的部分:
<<<<<<< head:index.html
「在分支test上的修改」
*****==
「在分支master上的修改」
>>>>>>> a
接下來,我們只要通過文字編輯器將衝突內容修改,修改完畢後重新提交即可。 Git 分支的操作
git是linux創始人linus用c語言寫的分布式版本控制系統 而且有乙個head指標,指標指向的是最近一次的提交,每次提交都有乙個commitid,我在這個欄目的其他有講到這些。一次提交我們可以認為是一次快照,我們可以用git reset hard commitid到達某次提交後的狀態 mast...
git操作分支
你也許會有疑惑,為什麼需要建立分支呢,只在主幹線上進行開發不是挺好的嗎?沒錯,通常情況下,只在主幹線上進行開發是完全沒有問題的,不過一旦涉及到出版本的情況,如果不建立分支的話,你就會非常地頭疼。舉個簡單的例子吧,比如說你們公司研發了一款不錯的軟體,最近剛剛完成,並推出了1.0版本。但是領導是不會讓你...
git分支操作
檢視分支git branch v新建分支git branch new branch切換分支git checkout new branch新建分支並切換過去git checkout b new branch在某分支上新建分支git checkout b new branch old branch重新命...