2013-05-10 37 views
2

研究學術研究我還沒有找到適合我們項目的git工作流程。研究環境中的git工作流程

設置: 我們有主要項目保存在分支主人。當新的想法出現時,創建一個新的分支來支持研究。通常對於不同人羣推動的主要項目有幾個平行的研究。

當我在研究分支R(它可能需要幾個月,和許多提交)。我的一些提交與研究沒有直接聯繫,並且正在改進項目本身......我想將這些提交推送給主分支(他們可以對其他人有幫助)。

我該怎麼做?櫻桃採摘?在我看來,經過大量櫻桃採摘(來自更多人和不同分支機構)之後,很難將分支R與主人合併在一起。

也許更好的選擇是在提交之前切換到主服務器,進行提交,然後切換回主服務器並從主服務器上獲取更新。但是,這似乎是困難的,原因有三:因爲很多文件不衝突等致力於

  1. 切換到主是不容易的(我需要使用某種方式藏匿)
  2. 有時候我後來意識到,我應該將R中的較早的提交推送給master。
  3. 有時我不想從別人那裏得到主人的其他更新。他們稍後會有用,但目前我沒有時間處理它們。

這樣做的正確方法是什麼?

回答

1

你可以考慮:

  • (分支R)git rebase --interactive:爲了重新排序提交,有一個你想在master第一,其次是一個細節,以R
  • (分支mastermerge SHA1(最後的右SHA1提交你想在master

但是,這將改變R分支的歷史,這可能是其他人的問題,也克隆了它(您需要清楚地溝通該事件,要求他們將其分支重置爲您更改並推送的新分支)。

+0

嗯......這可以工作。但這不是一種破解? – Andrej 2013-05-11 20:49:43

+0

@Andrej否,重新排序你的提交是一種常見的git實踐,前提是其他可能已經克隆該分支的人知道所述重新排序。 – VonC 2013-05-12 09:20:31