2016-11-16 41 views
0

我有一個名爲shared_pictures_feature的git分支。這個分支有一堆新文件,允許用戶上傳照片,在朋友中分享照片,併爲照片評分。爲了在代碼審查期間讓我的開發人員的智慧得到緩解,我想將shared_pictures_feature分公司分成三個獨立的分支機構進行公關審查。將分支分解爲單獨的分支以進行請求

每個分支應該只包含我需要的特定子功能的相關文件。例如,upload_photos_feature分支應只包含處理上傳照片的shared_pictures_feature中的代碼。這是我的問題,我怎麼用git來做到這一點?這甚至有可能嗎?

+0

git會如何理解你的代碼的結構?你是否將每個單獨的「片」都檢入自己的單獨提交中?或者它們混雜在一起? – Kritner

+0

@ Kritner剛剛說過的後續問題是,你的代碼是由目錄分隔的嗎?看起來就像你說的每個代碼的相關部分都被目錄分開,但我可能讀錯了。 –

+0

我很容易知道哪些文件應該進入每個功能。我的'shared_pictures_feature'中的所有更改都與新文件有關。我希望可以有一些方法可以從我的shared_pictures_feature分支中取消所有新文件,並選擇要推送的請求的文件。 – jason328

回答

1

有幾種不同的方式來做到這一點,但這是我的建議。

首先,創建並切換到您的第一個分支。

git checkout -b upload_photos_feature 

接下來,找到您提交分支shared_pictures_feature的提交。我建議閱讀this StackOverflow問題,瞭解如何做到這一點的細節。然後,爲了取消該分支中的所有文件,您需要執行以下操作:

git reset --mixed <parent commit of both branches> 

下一步將提交相關文件。只需在upload_photos_feature分支中添加並提交您想要的文件,其餘部分不變。

現在,您將希望切換回原始分支並恢復之前的狀態。

git reset --hard HEAD 
git checkout shared_pictures_feature 

現在,您將需要爲每個新分支再次執行這些步驟。只要確保您每次都創建新分支的第一步,因爲您不想在shared_pictures_feature上丟失任何東西。

+0

太棒了。我會嘗試這一點並報告結果。謝謝! – jason328

+0

這對我有用。謝謝! – jason328

+0

沒問題。很高興有幫助! –