【发布时间】:2015-10-19 19:48:14
【问题描述】:
对于测试,我有一个简单的控制台应用程序并提交它(初始)。然后我添加评论并提交 (00)。然后我更改评论并提交它(01)
现在我想简单地恢复到 00。
Changes | Actions | View History
right-click 00 | Revert
Are you sure you want to revert .... | Yes
此时我遇到了一个冲突:Program.cs [都已修改]。但为什么会发生冲突——我只想恢复到以前的版本?我点击它,然后我可以选择:
Merge (button)
Edited on Source | Diff | Take Source (links)
Edited on Target | Diff | Take Source (links)
如果我单击合并,我会看到三个不同的窗格,它们都有不同的版本(源、目标和合并)。
源看起来像我的第一个版本(初始),目标看起来像我当前的版本 (01),合并看起来像我选择恢复到 (00) 的版本。
如果我关闭该窗口,我会看到一个对话框,询问我是否要接受合并结果——从那里我可以对合并的文档进行还原。
你能解释一下源面板和目标面板是什么意思吗(看起来目标是我当前的版本,但源看起来就像我想要的这个版本之前的版本(它看起来像初始!)。
最终我可以保留源面板、目标面板或合并的结果,基本上可以恢复到这三个选项中的任何一个。这是 VS 2015 工具的工作方式吗?关键问题:如果我只想完全恢复到以前版本的文件而不进行任何合并怎么办?
另外...当我在这个工具上观看 Microsoft Build Demo 时,我注意到他们做了一个还原并且没有我上面讨论的问题。 https://channel9.msdn.com/Events/Build/2015/3-746(见 7:30 分)。
谢谢!
附言我没有在 Internet 上找到有关此工具如何恢复工作的文档,因此如果有请指出该链接,我会在那里查找 :)
【问题讨论】:
-
我不完全确定你在做什么,但如果你在历史记录中有两次提交,并且你右键单击第一个提交并为它选择恢复,那么你不是 reverting返回 到那个版本,但你实际上想撤消那个版本。因此,您希望保留提交 01 中的更改,但撤消 00 中的更改。假设 00 添加了
Program.cs并且 01 修改了它,撤消 00 当然会导致问题,因为您要求再次删除它,尽管您已经更改了它从 01 年开始。 -
我有 3 次提交:初始(添加 Program.cs),然后是 00(添加评论),然后是 01(更改评论)。现在我只想从我现在的位置恢复到 00。
-
那你要revert更改01.
-
啊,现在我看到了我的错误...我认为在历史记录中你选择了你想要恢复到的那个,但我从你的评论中看到你选择了你想要的那个要还原!
-
git revertfor VS 2015 与git revert在其他任何地方相同。