2011-03-09 78 views
1

我對Git來說是新手,最近從GitHub中分出了一個項目,做了一些更改並向GutHub提交了一個pull請求。在Git Pull Request後保持本地分支工作

我所做的更改現在正在我正在開發的應用程序中使用,所以我需要在本地爲了讓我的應用程序運行。

但是我確實想繼續添加功能/更改到GitHub項目,方法是分叉另一個分支並在那裏進行更改,然後再執行另一個請求,等等。

是否有辦法保留我在第一個分支中做出的更改(之前以及是否由項目開發人員將它們合併到主數據庫中),並繼續向第二個分支中添加功能,然後執行第二個請求將僅包含第二個分支中爲拉取請求而進行的更改。然後這個過程會重複第三次和後續的分叉。

但是在本地我會從第一個分支開始進行所有更改,以便我可以繼續測試我的應用程序,以防止我正在進行的所有最新更改。

回答

0

如果你有兩個分支,讓我們稱他們爲first-fork(您已經提交了拉要求),以及second-fork(其中有一些其他的事情,提交上游與否),你想要做的是什麼保持它們的獨特性,以緩解上游拉動。我想要做的是將第三個本地分支稱爲build,作爲您正在構建和運行的軟件的版本,您可以合併first-fork,然後反覆合併second-fork,以添加您想要的新內容嘗試。

+0

看起來像最合乎邏輯的解決方案,只是嘗試了你的建議,它工作得很好!只需要記住在編碼時在分支之間切換:) – garyj 2011-03-10 00:41:12

+0

@Matt正確我同意這聽起來像一個合理的,雖然是_esoteric/convoluted_戰略(絕大多數git用戶)。請介紹幾條命令來說明這個流程嗎? – 2013-09-06 00:38:20

+0

當然:'git checkout -b build upstream/master; git合併第一分叉; while:做git checkout second-fork; vi **/* && git commit -a; git checkout build; git合併第二分叉;進行測試&& git reset --hard HEAD ^;完成;'等等。你可以從'master'重做合併,如果它進展了,你想測試它,或者如果你進一步修改first-fork的補丁等等。關鍵在於'build'是一個一次性分支,所以你可以根據需要回放它,以模擬包含'master'和'first-fork'的狀態,以及在合併其他提議的更改之前想要的其他任何內容。 – 2013-09-16 21:06:00