我正在嘗試在GitHub上查看非主分支的拉取請求。目標分支在master後面,並且pull請求顯示來自master的提交,所以我合併master並將其推送到GitHub,但提交和差異仍然在刷新後出現在pull請求中。我翻了一番,檢查GitHub上的分支是否有來自主人的提交。爲什麼他們仍然出現在拉請求中?顯示已經在目標分支中的提交的GitHub拉取請求
我也檢出了拉本地請求,它只顯示未合併的提交。
我正在嘗試在GitHub上查看非主分支的拉取請求。目標分支在master後面,並且pull請求顯示來自master的提交,所以我合併master並將其推送到GitHub,但提交和差異仍然在刷新後出現在pull請求中。我翻了一番,檢查GitHub上的分支是否有來自主人的提交。爲什麼他們仍然出現在拉請求中?顯示已經在目標分支中的提交的GitHub拉取請求
我也檢出了拉本地請求,它只顯示未合併的提交。
它看起來像拉取請求並沒有跟蹤目標分支的變化(我聯繫了GitHub支持,並於2014年11月18日收到回覆,指出這是設計)。
但是,你可以得到它向你展示通過執行以下操作更新的變化:
http://githuburl/org/repo/compare/targetbranch...currentbranch
根據需要更換githuburl
,org
,repo
,targetbranch
和currentbranch
。
或者作爲hexsprite在他的回答中指出,你也可以通過在PR上點擊編輯並暫時將基礎改爲另一個分支並再次更新來迫使它更新。這會產生警告:
您確定要更換底座嗎?
來自舊基本分支的某些提交可能會從 時間表中刪除,而舊評論評論可能會過時。
而在PR將leave two log entries:
爲別人來跨越這一點,並通過GitHub的困惑拉請求行爲,根本原因是,PR是源科的DIFF提示源分支和目標分支的共同祖先。因此,它將顯示源分支上的所有更改直至共同祖先,並且不會考慮目標分支上可能發生的任何更改。
的更多信息可在這裏:https://developer.atlassian.com/blog/2015/01/a-better-pull-request/
共同的祖先基於diff文件似乎危險。我希望GitHub可以選擇製作更標準的3路合併公關。
你提到的原因似乎是正確的,但我很困惑,因爲一般情況下,每當主人得到更新,我反饋合併更改到我的分支... ** git checkout my-branch - > git merge master **。 拉取請求會立即刷新。共同的祖先是否也得到更新? – 2016-12-30 15:23:24
這種行爲似乎發生在做rebase而不是合併 – 2016-12-30 15:28:10
解決此問題的一種方法是在該PR中的git rebase targetbranch
。然後git push --force targetbranch
,那麼Github會顯示正確的提交和差異。如果你不知道你在做什麼,請小心。也許先結賬測試分支,然後git diff targetbranch
以確保它仍然是你想要的。
我不完全確定這背後的理論。但我得到了這幾次,並能夠通過以下操作來解決這個問題。
git pull --rebase
這將取回併合並從原來的回購主分支的變化(如果你點到)
然後你用力按壓你改變你的github克隆庫(目標)
git push -f origin master
這將確保您的github克隆和您的父回購處於相同的github提交級別,並且您不會在分支機構中看到任何不必要的更改。
該死的,我點擊了意外的投票。這個答案幫助了我。請讓我改變它。 – hosein 2017-09-23 10:20:06
@hosein去吧。你現在應該可以做到。 – 2018-01-16 15:52:54
我認爲這應該是接受的答案,或者包含在接受的答案中。這實現了我期待的結果! – 2018-02-23 15:10:54
總結一下,GitHub不會在提取請求中自動重定義提交歷史記錄。最簡單的解決方案是:
假設你想從feature-01
合併爲master
:
git fetch origin
git checkout feature-01
git rebase origin/master
git push --force
如果您在叉子上工作,那麼你可能需要將上述更換origin
與upstream
。請參閱How do I update a GitHub forked repository?瞭解有關跟蹤原始存儲庫的遠程分支的更多信息。
假設你想從feature-01
合併前奏master
:
git checkout feature-01
git checkout -b feature-01-rebased
git push -u origin feature-01-rebased
現在打開一個拉請求feature-01-rebased
並關閉一個feature-01
。
這是一個很好的解決方法。在GitHub中查看PR時,使用Edit
按鈕將基本分支更改爲master
以外的其他分支。然後將其切換回master
,現在它只能正確顯示最近提交的更改。
是的,我聯繫了支持一會兒,得到了同樣的迴應。他們不會針對這種情況進行優化。這有點令人沮喪。我們解決這個問題的方法就是重新設定和強制推動,或者關閉拉力並創建一個新的拉力。 – lobati 2014-11-18 15:54:14
此答案不解決問題,但只是允許用戶看到真正的差異。 – FearlessFuture 2016-06-28 03:14:47
問題是「爲什麼他們仍然出現在拉請求?」。它回答了這個問題。 – 2016-06-28 03:21:18