Git 問題, 一個 master, 多個新功能分支, 怎樣有序地合併和提交?

0

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

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

  • git
  • github
  • 鏈接
  • 2 評論
  • 更多
  • 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

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

  • 鏈接
  • 3 評論
  • 更多
  • 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型糖尿病合併肥胖綜合管理專家共識

    TAG:合併 | 功能 | 問題 |