2015-04-16 38 views
1

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

+0

你究竟是如何使用'git revert'? – Alik

+0

'git恢复' – zero

+0

有很多方法可以做到这一点。你可以选择提交到你的分支,或者你可以检查你的分支并恢复恢复提交。 – meagar

回答

2

我建议cherry-pick你提交到新的分支(如果重置是不可能的)。

  1. 运行git log并复制尚未恢复的提交的散列。
  2. git checkout你的新分支。
  3. 运行git cherry-pick <copied-commit-hash>

你会得到完全新的不同的哈希提交。

Read more about cherry-pick

+0

有没有分配新哈希的好处?我想知道,因为这段代码在某些时候会被合并回开发者(仍然试图弄清楚git是如何工作的) – zero

+0

我认为它是存在的。基本上你需要恢复恢复以保持历史可以理解。所以它应该是新的提交。 – peresleguine

+0

合并后,您的更改看起来是合理的:提交 - >恢复 - >再次提交。 – peresleguine

1

这个完美工作: How do I create a new git branch from an old commit?

刚检查出来的一个新的分支创造的一部分。这很简单。

+0

这种方法的缺点:如果您随后与dev合并(在任一方向),恢复提交将成为合并的一部分,最多只会让您发生冲突,或者最坏情况下会再次撤消这些更改。恢复回复会保护你免受这种情况的影响 – ComputerDruid