【问题标题】:get back changes after a git revert and move to a separate branch在 git revert 后取回更改并移动到单独的分支
【发布时间】:2015-06-23 06:35:48
【问题描述】:

我使用git revert 撤消已提交并推送到我的开发分支的更改(这是我第一次使用此命令)并且一切都很顺利,但我需要知道是否有可能:保持开发方式是,但暂时取回这些更改,然后将它们添加到新分支(不想在 dev 上工作)?

【问题讨论】:

  • 你到底是怎么使用git revert的?
  • git revert <commit id>
  • 有很多方法可以做到这一点。您可以挑选提交到您的分支,或者您可以检查您的分支并恢复还原提交。

标签: git git-revert


【解决方案1】:

我建议 cherry-pick 提交到新分支(如果无法重置):

  1. 运行 git log 并复制提交哈希(尚未恢复)
  2. git checkout 到一个新的分支
  3. 运行git cherry-pick <copied-commit-hash>

您将获得具有不同哈希的新提交。

Read more about cherry-pick

【讨论】:

  • 分配新的哈希值有什么好处吗?我想知道,因为这段代码会在某个时候合并回 dev(仍在尝试了解 git 的工作原理)
  • 我认为有。基本上,您需要还原还原以使历史易于理解。所以它应该是新的提交。
  • 合并后您的更改看起来很合理:已提交 -> 已恢复 -> 再次提交。
  • 是的,我想保持历史尽可能健康
【解决方案2】:

这非常有效: How do I create a new git branch from an old commit?

只是将其作为新分支创建的一部分进行检查。这很简单。

【讨论】:

  • 这种方法的缺点:如果您随后与 dev 合并(在任一方向),则还原提交将成为合并的一部分,并且充其量会给您带来冲突,或者最坏的情况是再次撤消这些更改。还原还原将保护您免受此影响
猜你喜欢
  • 1970-01-01
  • 2015-12-27
  • 2018-07-17
  • 2011-07-21
  • 2016-05-29
  • 2015-01-22
  • 2020-06-03
  • 2016-06-08
  • 1970-01-01
相关资源
最近更新 更多