【问题标题】:Git - reverting a revert, conflictsGit - 还原还原,冲突
【发布时间】: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


【解决方案1】:

总结上面的讨论,由于您没有推送您的更改,您可以使用 git reset/revert 重写您的更改(取决于您的具体情况)。

您可以在 Atlassian Git Tutorials 中找到一些关于您的选项的精彩教程,特别是在章节 Undoing Changes 中讨论您使用 git checkout、reset 和 revert 命令的选项,以及在提交级别讨论这些命令的 Reset, Checkout, and Revert和文件级别。

但有一个建议 - 由于其中一些命令是不可逆的,我建议您备份您的 repo 和当前提交,以便万一出现问题,您将备份您的更改。

【讨论】:

  • 另外,如果你从最新的开始,而不是从第一个开始(我的错误)
猜你喜欢
  • 2013-12-21
  • 2011-12-19
  • 2022-12-01
  • 2017-04-02
  • 1970-01-01
  • 2017-01-07
  • 2011-03-13
  • 2012-12-05
  • 2021-08-12
相关资源
最近更新 更多