2017-06-22 109 views
2

我將一些回購分配給我的配置文件,然後進行更改並將更改推送到分支名稱dev_branch下的我的配置文件中。使用這個分支,我提出了一個請求來源回購的staging分支。所有者現在想要在合併之前完成一些更改。我應該如何更新拉取請求以包含所請求的更改?如何修改現有合併請求的審覈更改

完全相同的問題在這裏問:How to update a pull request from forked repo?。但這不適合我。

當我嘗試推到我的個人遠程回購,我得到以下錯誤:

hint: Updates were rejected because the tip of your current branch is behind 
hint: its remote counterpart. Integrate the remote changes (e.g. 
hint: 'git pull ...') before pushing again. 
hint: See the 'Note about fast-forwards' in 'git push --help' for details. 

我試着做一個新的克隆,然後應用更改,確實git commit --amend,然後試圖推動git push -u origin dev_branch。它仍然給出同樣的錯誤。

我也試過這個要點:https://gist.github.com/lolindrath/4454638。同樣的錯誤。

這到底是什麼錯誤? github真的支持--amend嗎?

注意:如果有問題,我的郵件中沒有commit-id。

+0

我認爲這個消息清楚地告訴你如何繼續。你應該先拉,然後推。進行必要的更改,然後將其作爲新提交進行分類。 –

+0

如果不是真的需要,不要嘗試修改。 –

+0

@AnoopToffy:我也嘗試過拉。邏輯思考,如果它是一個新的克隆,爲什麼它需要再次拉動。我認爲'git commit --amend'會改變commit id,因此在本地和遠程之間會產生差異。因此, –

回答

0

可以做出新的提交,但你應該變基上游/大師的頂反正你的分支:這樣,你要確保你的分支仍然是工作從原來的回購協議的最新頂部:

git remote add upstream /url/original/repo 
git fetch upstream 
git rebase upstream/master 

git push --force 

您不必猶豫,強行推送:即會更新現有的拉取請求。請參閱「Git - When to use force push」。


邏輯思維,如果它的一個新的克隆,爲什麼它需要一個拉一次。

您不需要:您不需要從您的叉子('origin')拉出。
您需要從原始回購庫(您已分叉的回購庫)中取出(不拉),因爲當您添加新提交併需要添加新提交時,原始回購站可能會自行進化。