在拉取請求并從我的遠程原始分支合并到上游之后,我從遠程洗掉了該分支,但我重命名了本地分支并繼續處理它(我認為這是我搞砸的原因)。當我將此本地分支提交到遠程源并向上游發出拉取請求時,我對第一個拉取請求的提交也出現了。
有沒有辦法從這個拉取請求中洗掉舊的提交歷史?
或者我必須關閉此拉取請求并將本地分支重新定位到上游,然后再執行另一個拉取請求?
uj5u.com熱心網友回復:
如果您從舊分支(這里是 PR 分支)開始作業,請將您的提交移到上游目標分支(例如,原始 repomain分支)的頂部
cd /path/to/repo
git remote add upstream https://github.com/<origina>/<repo>
git fetch upstream
你從
old PR
|
--x--x--Y--y--y (newBranch)
\
m--m--m (upstream/main, updated by the fetch)
快速變基:
git switch myNewBranch
git rebase --onto upstream/main firstNewCommit^1 myNewBranch
這給出了:
old PR
|
--x--x
\
m--m--m (upstream/main)
\
Y'--y'--y' (newBranch)
Agit push --force并且您的新 PR 更新的歷史要短得多。
uj5u.com熱心網友回復:
如果您的更改尚未推送,您可以簡單地使用
git reset --hard HEAD~1
或者,如果您已經推送了更改,則可以使用此命令
git push origin HEAD --force
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/452566.html
