我已经创建了 2 个对远程dev分支的提交。我将其压缩并合并到远程master分支中。
现在,当我想继续在dev分支上工作时 - 我不知道如何正确“修复”我的分支 - 因为在从 到 创建新的拉取请求之后,dev我master得到了在先前拉取请求中被压缩的所有提交的列表。
我有这样的事情:
O ---- A ---- B ---- XY <--(master)
\
X ---- Y ---- Z <--(development)
Run Code Online (Sandbox Code Playgroud)
如何使用 commit Z from devto创建正确的拉取请求master?
在向您的开发分支添加新的提交之前,您应该首先将其重置为origin/master,因为您squashed/merge是对其进行开发的。
为了不破坏任何东西,从 origin/master 创建一个新分支:
cd /local/repo
git fetch
git checkout -b newBranch origin/master
Run Code Online (Sandbox Code Playgroud)
然后报告您在该新分支上的新提交:
git cherry-pick Y..Z
Run Code Online (Sandbox Code Playgroud)
最后,将您的开发分支重置为所述新分支:
git checkout dev
git reset --hard newBranch
Run Code Online (Sandbox Code Playgroud)
并用力推:git push --force。
最终结果将是一个仅包含新提交的新 PR