【问题标题】:Reverting to a previous commit in Git for visual studio 2012在 Git for Visual Studio 2012 中恢复到以前的提交
【发布时间】:2013-06-19 22:41:22
【问题描述】:

我对 git 和源代码管理非常陌生。

我正在将 Visual Studio 工具用于 git 与 vs2012。

我正在进行一些提交并想回到以前的提交,但我似乎无法做到这一点。当我转到提交详细信息时,还原按钮似乎已灰显。

在过去的 2 个小时里,我一直在解决这个问题。我研究了互联网,但没有用。请有人告诉我如何恢复到以前的提交。

谢谢。

【问题讨论】:

    标签: c# .net git visual-studio


    【解决方案1】:

    您不想进行还原 - 还原只需提交并撤消它。

    如果你想回到之前的提交 - 有两种选择:

    如果您想永久返回,请执行 git 硬重置,它将代码回滚到指定的提交。您可以通过以下方式执行此操作:

    git reset --hard {commit number}
    

    如果您想暂时返回,you can create a branch from that commit. 这将基本上保留您在代码历史记录中的当前路径,并从提交该代码的历史记录点创建另一个路径。

    【讨论】:

    • 我怀疑 OP 想通过 Visual Studio GUI 执行 reset。我也找不到任何方法。
    • 硬重置也会丢失您所做的更改,包括您尚未提交的其他文件。如果您仍然想要更改,请进行软重置(省略 --hard 标志)。两者都是有效的选项,你只需要知道你想要哪一个。
    • 这不是关于 Visual Studio 的问题的答案。
    • 谢谢大家,这对我帮助很大!我没有意识到我必须指定我想要回滚到的父提交,我一直在尝试重置我真正想要删除的提交
    【解决方案2】:

    对于那些有同样问题的新手来说,不浪费 3 小时生命的最好方法就是不要使用 Visual Studio Tool for GIT。至少不是现在的形式。(2013 年 6 月 23 日)

    在浪费了很多时间之后,我从一个不起眼的链接中发现 vs 扩展只支持少数 GIT 功能,而 reset 不是其中之一。

    【讨论】:

    • 很遗憾,这也是我的结论。目前,最好使用“Git Source Control Provider”visualstudiogallery.msdn.microsoft.com/…(不是来自微软的)
    • @Klas Mellbourn。可悲的是,它仍然不完美。
    • 该函数应该存在于每个文档的 VS 中,但我无法让它工作:msdn.microsoft.com/en-us/library/vstudio/dn237244.aspx#revert
    • @PatrickJCollins 它从 2015 年 2 月开始工作。虽然我花了一段时间才找到历史记录页面.. 转到分支页面,右键单击您的分支并选择查看历史记录。从那里您可以右键单击任何提交并点击恢复更改。
    • 我认为 Visual Studio 在简化的过程中,忽略了太多关于 git “内部操作”的有用信息,以至于现在熟练的开发人员不可能找到正确的方法。
    【解决方案3】:

    Team Explorer -> Branches 然后选择 Actions -> Open command prompt 并使用 git 命令:

    • git 结帐your commit id
    • git 重置your commit id

    查看此内容以了解区别What's the difference between "git reset" and "git checkout"?

    我认为您还需要在 Visual Studio 中安装 git 扩展,我有,但不确定是否需要这样做。

    【讨论】:

      【解决方案4】:

      Visual Studio 2015 Update 2 添加了对 GIT“重置”的支持,这可能是您想要做的:

      • 打开历史记录
      • 右键单击要还原到的提交
      • 重置 -> 重置和删除更改

      【讨论】:

      • 为了清楚这一点,右键单击您要回滚到的提交,而不是您要删除的提交。我是一个 GIT 菜鸟,完全错过了这个概念。
      • @ChrisSchaller:如果不是你的小费,我也会错过整个目标;救了我的命!
      猜你喜欢
      • 2011-06-27
      • 2021-06-20
      • 1970-01-01
      • 2013-04-28
      • 2016-11-22
      • 1970-01-01
      • 2011-05-06
      相关资源
      最近更新 更多