2017-07-31 20 views
0

我有什麼:如何創建第二拉請求,並忽略所有先前的承諾

兩支branch1branch2不同的特點,在branch1我推5提交和創建拉請求並等待代碼審查。 然後,我完成了branch2中的新功能,並將3推向了第二個。

問題:

當我打算從branch2我看到所有8提交將被添加到該請求創建新的拉請求。由於某些原因,我可以要求從branch2只拉那些3

我在做什麼錯了?

+1

看起來像這樣移動的分支:'branch1'是從一個基本提交創建的,5個新的提交已經完成,'branch2'是從'branch1'的提示創建的,另外還有3個提交。如果是這樣,'branch2'也應該從基本提交創建。您可以將3個新的提交重新綁定到基本提交上,或者現在從基礎創建'branch3',然後選擇3個提交。最後從'branch3'創建一個新的請求。 – ElpieKay

回答

1

你可以嘗試一種選擇是:

(I)一旦你這樣做5提交到branch1,把它推到遠程代碼審查。 (二)結帳到branch2,如果你輸入git log你應該看到以前的5承諾branch1。做一個git reset --hard HEAD~5,這將使您的本地回購5提交回來。您不必擔心永久失去那些5提交,因爲它們在遠程回購的branch1上可用 - 您可以在需要時進行提取。

(III)進行更改您branch2,爲您branch2新拉請求,並推動這些3提交到遠程branch2代碼審查。現在,以前的5提交將不會包含在新的請求中。

注意:當兩個分支在獨立功能上工作並且不依賴於對方的更新工作時,可以使用此選項。 我希望這能回答你的問題。如果您有任何問題,請告知我。

此外,當你想要的分支是分開的,權當您正在創建的新的分支,做一個git checkout master,然後git checkout -b branch2使branch2從主人的歷史創造,而不是branch1或你的工作分支。然後分支提交不會相互重疊,並且會跟隨主人。因此,在你的情況下,你將分別在和3之後提交5提交,分別在branch2之後提交。

+1

嘿,你的評論是有用的,所以我已經刪除了'branch2'('stash'所有在它之前)和之前創建一個新的使用'git checkout',它幫助! – kyxap

+0

@kyxap很高興它幫助:) – nj2237