如何在恢复之后挑选承诺?

Gin*_*ina 6 git github git-revert git-cherry-pick

我正在研究我的工作feature branch,经过审核后,将其合并development到部署中.后来,一位同事决定发布并合并他和我的master.在部署时,他意识到他的代码是错误的并且还原了master.

在我们的fork-and-pull流程中,这意味着现在developmentmaster都被还原.

当我今天早上进来的时候,我按照惯例从发展中重新定位,然后学会了恢复.

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

  1. 这是因为还原是我之前提交的镜像吗?
  2. 有没有办法恢复还原?(让我头痛)
  3. 无论如何,让我的提交出现在差异中,因为我已经重新定位了

任何帮助是极大的赞赏.

Joh*_*ter 12

Cherry-pick和rebase检查提交的补丁id(基本上是更改的散列),并且已经看到分支上存在更改,因此它不会选择它.重新绑定有时可以起作用,因为文件中的更改可能导致实际差异稍微改变 - 导致不同的补丁ID - 但对您来说情况似乎并非如此.

您可以"恢复还原",但这会重新引入您的同事介绍的损坏位.然后你需要恢复你的同事提出的错误提交.这是一个很好的回复,并且保持平稳,所以慢慢来,让别人和你坐在一起,以确保你不会错过任何东西.

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