Git分支的定義和操作

2021-10-11 22:46:26 字數 1572 閱讀 4090

當你開發專案的時候,需要不同的版本,如果不想一直在乙個專案裡邊做修改,這時候就可以使用分支。在不同分支上邊 開發可以相互不影響,需要的時候可以切換到不同的分支進行工作。同個小組不同的成員可以在不同的分支針對不同的功能進行開發,需要時進行分支合併即可。

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重新命...