git分支管理(建立分支,分支間轉換,檢視分支,合併分支,刪除分支,分支衝突)
分支(branch)這玩意兒我也不知道該怎麼解釋,就按照自己的理解來吧~
在你第一次commit的時候,git會自動建立一個master分支(當然前提是你沒有在這之前就轉換到另一個分支上),這就是主線。有的時候,會想對倉庫進行某些操作,但是我們又不想影響到倉庫當前的狀態,這個時候就可以建立一個新的分支~
git branch + 分支名
git branch SuperAFeiDa
這下就有了一個新的分支SuperAFeiDa。當然,光是建立了一個分支沒用,只要沒有轉換到那個分支上,當前就還在master上面。這個時候就需要轉換分支了~
git checkout + 目標分支 git checkout SuperAFeiDa
現在我們到了SuperAFeiDa分支上,實際上上面兩句話可以簡寫為一句話:
git checkout -b SuperAFeiDa
然後我們想知道自己確實轉換到了新的分支上,於是需要檢視分支:
git branch
這樣,系統會列出所有分支,並用 * 標記當前分支~~
看到了自己確實在新的分支上了,於是我們開始了新的開發~
100年過去了,針對SuperAFeiDa上面的東西已經完成了,可以將它加入到產品裡了,那麼就需要將SuperAFeiDa分支合併到master裡:
git checkout 合併到的分支 git checkout master git merge 被合併的分支 git merge SuperAFeiDa
這樣SuperAFeiDa裡面的東西就被合併到了master裡了。值得一提的是,merge其實也是一次commit,也就是說,也可以加-m新增提交說明。SuperAFeiDa分支裡面的東西已經沒用了,那麼這個分支就可以刪除了:
git branch -d SuperAFeiDa
這個過程,貌似是完美的,但實際上,還有一種可能,就是在我們正興致勃勃地在SuperAFeiDa上進行開發的時候,可能有人在master上也在進行著開發。這樣合併的時候就可能有一個問題了:兩個分支有同名檔案,都進行了修改。這樣兩個分支就有了衝突,不能直接合並了,這要怎麼搞呢?首先嚐試merge,Git比較“聰明”,在進行合併的時候,會嘗試著把兩個修改強行合併,雖然得到的結果一般都不是我們想要的~~~然後就可以在合併後的衝突檔案裡看到神奇的東西(會看到什麼,自己試試看就知道了,我才不截圖呢~~~)。現在要解決衝突,就直接將衝突檔案改成它應該的樣子,然後commit就好了啊~~~