如何在还原后挑选提交?



我正在开发我的feature branch,经过审查后,将其合并到development中进行部署。后来,一位同事决定做一个发布,并将他的和我的合并到master中。在部署时,他意识到他的代码有bug,并还原了master

在我们的叉拉流中,这意味着现在developmentmaster都恢复了。

当我今天早上来的时候,我从平常的开发中重新开始,后来才知道有一个恢复。

现在我正试图从原来的feature branchcherry-pick我的工作,只是为了意识到它给了我"空提交消息",因为恢复。

    这是因为revert是我以前提交的镜像吗?
  1. 有办法恢复恢复?(让我头疼)
  2. 是有无论如何让我的提交显示在diffff现在我已经重新基于

非常感谢任何帮助。

Cherry-pick and rebase检查提交的补丁id(基本上是更改的散列),并且已经看到该更改存在于分支上,因此它不会选择它。重基有时可以工作,因为文件的更改可能会导致实际的困难发生一点变化——导致不同的补丁id——但这似乎不是您的情况。

你可以"revert the revert",尽管这将重新引入你的同事引入的碎片。然后,您需要还原您的同事所做的错误提交。这需要大量的恢复,而且要保持笔直,所以慢慢来,让别人坐在你身边,以确保你没有错过任何东西。

另一种选择可能是通过执行git show COMMIT_ID | git apply来重放提交。这再次将diff应用到工作树中。只要您的树是干净的,就可以使用git commit -C COMMIT_ID来重用来自原始提交的消息。您可以使用git format-patchgit am来避免额外的步骤。

使用一个交互式的rebase来编辑你想要保留git rebase -i myfirstcommitid^的第一个提交。应用修改提交。这将改变哈希值。使用git rebase --continue完成重基,现在所有提交都应该有新的id,这应该允许您在闲暇时挑选。

相关内容

  • 没有找到相关文章

最新更新