【发布时间】:2015-06-12 07:01:59
【问题描述】:
我做了一些提交,然后将它们还原。如何还原还原? (在我恢复之后,分支上还有其他提交)。如果我将我的分支重新合并到 master 中,我会得到 already updated,因为它已经包含了我认为的所有这些提交。
* b1e0603 - other commit
* f835cec - Revert ""
* 68ffc84 - Revert ""
* da5795b - Revert ""
* 75ae2a0 - Revert ""
* 4e51f8f - Merge branch 'master'
|\
| * 58a6fe8 - commit
* | 205f2a2 - Merge branch 'on this branch are my commits that weere reverted'
|\ \
| |/
|/|
| * 425d6f3 - commit
* | 0efc0e9 - Merge branch 'on this branch are my commits that weere reverted'
执行git revert 75ae2a0 输出冲突。我必须运行大约 10 次还原。我应该只恢复合并 (205f2a2) 吗?
谢谢!
【问题讨论】:
-
最佳解决方案取决于您最终想要进入的状态。一种选择可能是创建一个新分支,挑选您真正想要的提交,将
master重置为较早的状态,然后将你的新分支合并到master,基本上放弃包含恢复提交的混乱历史。 -
您是否将更改推送到公共存储库?如果没有,那么您可以重写您的更改。否则它可能会更复杂,可能需要更多的还原/合并工作
-
@AmnonShochot 没有推送我的更改。如果我只是打开并重新保存所有受影响的文档就足够了吗?谢谢
-
打开和重新保存文档是与您的存储库的修订历史完全不同的问题。
-
如果您没有推送您的更改,那么您可以:(1) 备份您的存储库 (2) 重置/恢复您的更改(对您而言更简单的一种)并重新应用您所做的更改有兴趣
标签: git