Git 問題, 一個 master, 多個新功能分支, 怎樣有序地合併和提交?
以前大多個是一個的使用 Git, 到 Github 上提交的場景, 對多人開發合併項目經驗不多,現在遇到的是在 Github 上存在主分支, 本地需要修改多個功能和 bug 等等,我是按以前實習回來的同學提示, 在多個分支開發不同的功能, 然後合併提交..合併和提交的順序不是確定的, 因此不能簡單直接用 merge
每次一個個疊加.有時我用 rebase
, 但有發現 commit
順序不是時間順序, 到線上被 merge
以後也不是非常清晰於是我想問一下面對這樣的場景, 用怎樣的方式管理會更合適?
有在 Google, 但一些細節不清晰.. 比如 commit
顯示順序.. 還有再次被 merge
後的細節..
1
有一個著名的分支模型呢。也可以看看github flow http://hooopo.writings.io/articles/fe...
#1 hit9 · 2013年03月22日 · 回復 舉報
展開評論默認排序 時間排序 3 個回答 5
coder 1.8k 2013年03月22日 回答
git支持很多種工作流程,我們採用的一般是這樣,遠程創建一個主分支,本地每人創建功能分支,日常工作流程如下:
去自己的工作分支$ git checkout work
工作....
提交工作分支的修改$ git commit -a
回到主分支$ git checkout master
獲取遠程最新的修改,此時不會產生衝突$ git pull
回到工作分支$ git checkout work
用rebase合併主幹的修改,如果有衝突在此時解決$ git rebase master
回到主分支$ git checkout master
合併工作分支的修改,此時不會產生衝突。$ git merge work
提交到遠程主幹$ git push
這樣做的好處是,遠程主幹上的歷史永遠是線性的。每個人在本地分支解決衝突,不會在主幹上產生衝突。
0
巨臣 2 2013年03月22日 回答
上面那位仁兄的回答很好,我這裡再補充一個資料,給樓主作為參考。這個是阮兄寫的,[git分支管理策略](http://www.ruanyifeng.com/blog/2012/0...)。
0
liujin834 3 4月20日 回答 · 4月20日 更新
可以在一條分支上一起開發,你有變更的時候,在提交前,使用
git stash
這樣將本地的修改全部緩存在一個堆棧中了,然後把別人的修改同步過來
git pull --rebase
下一步是將自己的變更恢復到最新的節點上
git stash pop
然後再使用git commit提交,這樣就會讓一個分支的版本按順序繼續發展,而不是像織毛衣一樣,你可以看一下我們使用這種方法前後的對比圖
之前:
之後
撰寫答案
推薦閱讀:
※Excel合併單元格查詢多個結果,簡單函數解決大問題,趕緊GET
※武林銀泰、百大意欲合併打造「大武林」·杭州日報
※腰椎間盤突出合併腰叢神經受累的治療 - 已解決 - 搜搜問問
※當心!糖尿病合併下肢動脈病變
※【指南與共識】中國2型糖尿病合併肥胖綜合管理專家共識