2016-11-24 67 views
0

我在Github上分支了一個項目,做了一個提交,推送到我的fork併發出了拉取請求。所有這一切都很好。從現有的拉取請求中移除提交

然後,我不斷提交併推送不相關的東西,但不知道所有這些都會添加到我的pull請求中。

我需要我在我的叉保留(在一個不同的分支或東西)所做的更改,但我必須從拉請求中刪除除第一次提交以外的所有更改。我該怎麼做呢?

回答

3

首先,確保你當前的工作樹是乾淨的,然後就上創建一個新的分支承諾,以確保您不會失去你的工作:

git stash 
git checkout -b unrelated-stuff 

現在,切換回拉要求分支:

git checkout feature

然後重置分支指向特定提交ID(您將通過git log或通過任何GUI應用程序找到ID):

git reset --hard COMMIT_ID

一旦你有你的地方feature分支指向你喜歡的提交,你可能會迫使推動該分支服務器:

git push --force

在這一點上,你拉的請求上服務器將只包含相關的提交,而不相關的工作仍然在unrelated-stuff分支上可用。

如果您在git stash編輯它之前有任何未保存的工作,可以用git stash pop取回。

請注意,強制推送是一個非常灰心的操作在git中,因爲它可能會打破其他人的本地存儲庫。在拉動要求的情況下,應該總體上是可以的(許多回購所有者更喜歡只有在審查後乾淨整齊時才合併PR),但是從未有過強行推入主人或其他可能有其他人的分支工作。

理解和學習git的好資源是http://learngitbranching.js.org - 看看你是否感興趣!

相關問題