【问题标题】:Undo changes after merged pull request合并拉取请求后撤消更改
【发布时间】:2017-08-23 08:29:29
【问题描述】:

我有一个分支开发。我从中创建了一个新分支 X,并进行了一些更改,然后我从 X 创建了一个新分支,分支 Y,在这个分支中我对 names of variables 进行了大重构,比如更改了 30 个文件。重构后,我创建了从分支 Y 到 X 的拉取请求,并将其合并。然后我对分支 X 进行了一些更改,然后我创建了拉取请求并将分支 X 合并到开发中。我可以撤消分支 Y,这 30 个文件更改了其中的名称重构吗?如果是,我该怎么做?

演示:

【问题讨论】:

  • 你是说你重命名了 30 个文件,还是你重命名了 30 个文件中的一些变量?
  • 第二个选项,我重命名了30个文件中的一些变量。

标签: git merge pull-request


【解决方案1】:

您可以尝试在 Y 中还原您进行重命名的提交:

git revert <SHA-1 of Y commit

这应该完全撤消 Y 提交中发生的所有事情,包括变量重命名。

要在development 中找到您要恢复的提交哈希,一个简单的选择是只使用git log,它将显示从最近到更早的提交列表。

【讨论】:

  • 然后呢?在我恢复分支 Y 上的更改后,我会有一些更改要提交,我提交并推送它,然后将其合并到分支 X,然后从分支 X 到开发?
  • 不。当您 git revert 提交时,您添加一个 new 提交,这是您对 Y 所做的提交的镜像,它更改了所有变量名。
  • 所以当我执行 git revert 时,我会得到一个新的提交,我应该将它推送到开发中,这将恢复从分支 Y 合并到分支 X 然后进行开发的所有更改?考虑到所有因素,在这些更改之后,我将进行分支开发并恢复重命名变量的重构?如果我在开发和分支 Y 中更改了相同的文件,会不会有一些冲突?
  • 是的,您在还原时可能会遇到冲突。只需解决它们,然后将development 推送到遥控器。
猜你喜欢
  • 2011-09-22
  • 1970-01-01
  • 1970-01-01
  • 2020-06-26
  • 2021-08-27
  • 2020-07-08
  • 1970-01-01
  • 2014-04-07
相关资源
最近更新 更多