乙個git倉庫可以維護很多開發分支。現在我們來建立乙個新的叫」experimental」的分支:
$ git branch experimental
如果你執行下面這條命令:
$ git branch
你會得到當前倉庫中存在的所有分支列表:
experimental
* master
「experimental」 分支是你剛才建立的,「master」分支是git系統預設建立的主分支。星號(「*」)標識了你當工作在哪個分支下,輸入:
$ git checkout experimental
切換到」experimental」分支,先編輯裡面的乙個檔案,再提交(commit)改動,最後切換回 「master」分支。
(edit file)
$ git commit -a
$ git checkout master
你現在可以看一下你原來在「experimental」分支下所作的修改還在不在;因為你現在切換回了「master」分支,所以原來那些修改就不存在了。
你現在可以在「master」分支下再作一些不同的修改:
(edit file)
$ git commit -a
這時,兩個分支就有了各自不同的修改(diverged);我們可以通過下面的命令來合併「experimental」和「master」兩個分支:
$ git merge experimental
如果這個兩個分支間的修改沒有衝突(conflict), 那麼合併就完成了。如有有衝突,輸入下面的命令就可以檢視當前有哪些檔案產生了衝突:
$ git diff
當你編輯了有衝突的檔案,解決了衝突後就可以提交了:
$ git commit -a
提交(commit)了合併的內容後就可檢視一下:
$ gitk
執行了gitk後會有乙個很漂亮的圖形的顯示專案的歷史。
這時你就可以刪除掉你的 「experimental」 分支了(如果願意):
$ git branch -d experimental
git branch -d只能刪除那些已經被當前分支的合併的分支. 如果你要強制刪除某個分支的話就用git branch –d;下面假設你要強制刪除乙個叫」crazy-idea」的分支:
$ git branch -d crazy-idea
分支是很輕量級且容易的,這樣就很容易來嘗試它。
你可以用下面的命令來合併兩個分離的分支:git merge:
$ git merge branchname
這個命令把分支"branchname"合併到了當前分支裡面。如有衝突(衝突--同乙個檔案在遠端分支和本地分支裡按不同的方式被修改了);那麼命令的執行輸出就像下面一樣
$ git merge next
100% (4/4) done
auto-merged file.txt
conflict (content): merge conflict in file.txt
automatic merge failed; fix conflicts and then commit the result.
在有問題的檔案上會有衝突標記,在你手動解決完衝突後就可以把此檔案添 加到索引(index)中去,用git commit命令來提交,就像平時修改了乙個檔案 一樣。
如果你用gitk來檢視commit的結果,你會看到它有兩個父分支:乙個指向當前 的分支,另外乙個指向剛才合併進來的分支。
如果執行自動合併沒有成功的話,git會在索引和工作樹里設定乙個特殊的狀態, 提示你如何解決合併中出現的衝突。
有衝突(conflicts)的檔案會儲存在索引中,除非你解決了問題了並且更新了索引,否則執行 git commit都會失敗:
$ git commit
file.txt: needs merge
如果執行 git status 會顯示這些檔案沒有合併(unmerged),這些有衝突的檔案裡面會新增像下面的衝突識別符號:
<<<<<<< head:file.txt
hello world
*****==
goodbye
>>>>>>> 77976da35a11db4580b80ae27e8d65caf5208086:file.txt
你所需要的做是就是編輯解決衝突,(接著把衝突識別符號刪掉),再執行下面的命令:
$ git add file.txt
$ git commit
注意:提交注釋裡已經有一些關於合併的資訊了,通常是用這些預設資訊,但是你可以新增一些你想要的注釋。
上面這些就是你要做乙個簡單合併所要知道的,但是git提供更多的一些資訊來 幫助解決衝突。
如果你覺得你合併後的狀態是一團亂麻,想把當前的修改都放棄,你可以用下面的命令回到合併之前的狀態:
$ git reset --hard head
或者你已經把合併後的**提交,但還是想把它們撒銷:
$ git reset --hard orig_head
但是剛才這條命令在某些情況會很危險,如果你把乙個已經被另乙個分支合併的分支給刪了,那麼 以後在合併相關的分支時會出錯。 Git branch 分支與合併分支
十五.git branch 分支 檢視當前有哪些branch bixiaopeng bixiaopengtekimacbook pro xmrobotiumgi tbra nch mast er新建 乙個br anch xm2.x bixi aope ng b ixia open gtek imac...
Git建立分支與合併分支
首先,我們建立dev分支,然後切換到dev分支 git checkout b dev 建立dev分支並同時切換到dev分支 switched to a new branch dev git checkout命令加上 b引數表示建立並切換,相當於以下兩條命令 git branch dev git ch...
git建立分支與合併分支
第一步 建立分支 git branch my branch 建立分支my branch 第二步 在自己的分支上進行操作,git status 檢視當前哪些檔案進行了修改,將本地修改的 推送到暫存區 git checkout my branch 切換到自己分支 git status 檢視當前修改了哪些...