github - Git 問題, 一個 master, 多個新功能分支, 怎樣有序地合併和提交?
怪我咯
怪我咯 2017-04-21 11:18:40
0
3
674

以前大多個是一個的使用 Git, 到 Github 上提交的場景, 對多人開發合並項目經驗不多,
現在遇到的是在 Github 上存在主分支, 本地需要修改多個功能和 bug 等等,
我是按以前實習回來的同學提示, 在多個分支開發不同的功能, 然後合並提交..
合並和提交的順序不是確定的, 因此不能簡單直接用 merge 每次一個個疊加.
有時我用 rebase, 但有發現 commit 順序不是時間順序, 到線上被 merge 以後也不是非常清晰
於是我想問一下麵對這樣的場景, 用怎樣的方式管理會更合適?

有在 Google, 但一些細節不清晰.. 比如 commit 顯示順序.. 還有再次被 merge 後的細節..

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回覆(3)
大家讲道理

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

這樣做的好處是,遠端主幹上的歷史永遠是線性的。每個人在本地分支解決衝突,不會在主幹上產生衝突。

洪涛

上面那位仁兄的回答很好,我這裡再補充一個資料,給樓主作為參考。這是阮兄寫的,[git分支管理策略](http://www.ruanyifeng.com/blog/2012/0...)。

阿神

可以在一條分支上一起開發,你有變更的時候,在提交前,使用

git stash

這樣將本地的修改全部緩存在一個堆疊中了,然後把別人的修改同步過來

git pull --rebase

下一步是將自己的變更恢復到最新的節點上

git stash pop

然後再使用git commit提交,這樣就會讓一個分支的版本按順序繼續發展,而不是像織毛衣一樣,你可以看一下我們使用這種方法前後的對比圖

之前:

之後

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板