如何从还原的Git提交中创建拉请求



我有一个主分支,我错误地向它推送了一个提交。我应该把它推到功能分支。因此,我已经恢复了主分支的提交,并推送了一个恢复:

git revert <commit-hash>
git push

然后我创建了一个新的特性分支,我想在那里使用我错误地推送到主分支的提交。我已经精心挑选了对该分支机构的承诺:

git cherry-pick <commit-hash>

当我做git status时,我得到:

无需提交,工作树清理

由于我想从该分支发出一个pull请求,所以如果没有提交,我就无法完成。如何使恢复的提交显示为功能分支上的新提交?

在樱桃采摘之后,工作树是干净的,所以git状态是正确的。你刚刚做出的选择是你想要的承诺。所以别担心,要快乐。推你可爱的新树枝!

您可以git revert恢复的提交。revert会创建一个新的提交,取消已恢复的提交,如果您恢复了revert提交,则会恢复更改。

Cherry pick的行为可能出乎意料,因为历史记录中仍然包含您正在进行的提交。它看到提交已经在分支的历史中了。

编辑:刮一下。如果你只关心git status是干净的,那么matt的答案是正确的。Cherry pick已经成功并将更改提交到您的分支(它实际上为您完成了git commit——带来了更改、消息和其他提交元数据(。

如果您查看git log,您应该会看到精心挑选的提交。要签出旧提交中的更改,可以执行git checkout SHA_HASH some_file.txt,然后在工作副本中将其显示为未跟踪的更改。

最新更新