2011-02-03 65 views
2

我想弄清楚我是否應該做我的上游分支的克隆我的開發或先創建它的地方分支的發展,即Git的工作流程上叉

  1. 叉上游
  2. 我的主人對我的主人 工作
  3. 問題上拉的請求......時間流逝......
  4. 合併上游/大師在我主人
  5. 回2

  1. 叉上游
  2. 分支我掌握到開發
  3. 上開發
  4. 工作
  5. 問題對開發 拉的請求......時間流逝......
  6. 合併上游/主人進入我的主人
  7. rebranch master或merge master into dev
  8. 回到2

的原因,我認爲第二個工作流是在我的拉動請求不被接受或僅部分接受的情況下,一旦我的上游合併我想確保我的地方是相同的上游所以我不會將未來的工作基於上游的不同突變。還是有一個命令,當我從上游拉到主人,使我的本地主人相同(即丟棄所有本地更改?)

回答

4

當處理上游回購,我通常做我認爲你的第二個工作流程建議。即:

  1. 我從上游的master創建一個分支。如果我正在處理某個特定功能或錯誤,我會命名該分支以反映該問題;否則,我會稱之爲dev或什麼。
  2. 根據需要進行開發,從上游的master進行重新分配。
  3. dev(或任何我稱爲分支)併發出我的拉請求。
  4. 繼續將上游的更改下拉到我的master分支中。

即,我不這樣做就master任何工作。這爲上游維護人員創建了一個簡單,乾淨的分支/拉取請求。

+0

我對github很新,所以我想澄清一下:在第2步中,上游是什麼?那是你的貨叉還是原裝回購?如果前者,你爲什麼需要這樣做?如果是後者,你如何去做這件事? – 2014-09-12 23:49:45

0

還有一個非常重要的git rebase可以將任何外部更改提取/合併到您重定位的分支中。這是我過去對Qt做出改變的方式(這是託管在具有良好合並請求功能的gitorious上)。步驟1和2可能只是你的第二。

  1. 在目前開發的分支在一個單獨的項目中創建「大師」自己克隆
  2. 工作或創建一個新的工作分支。
  3. 在進行拉取請求之前,請執行git rebase origin/master或類似的操作,以確保您的提交完全適用於當前主設備。這具有很好的副作用,即您的更改顯示在「堆棧頂部」,即所有其他提交之後。

希望這可以幫助你在你想做的事情。

+0

我想過rebase,但據我瞭解,一旦我推一個分支(因爲我必須要求一個pull請求),我不應該重新分配這個分支。 – 2011-02-03 21:49:44