在Visual Studio中(如果您使用的是git存储库),可以右键单击已修改的文件,然后选择“与未修改比较”。在那里你可以看到一个diff,你可以在其中编辑文件的当前版本。 澄清:与最新提交相比,您可以在差异视图中编辑源文件中当前未提交的更改。相比之下,比较差异视图中的2个提交仅显示您无法编辑的临时文件夹中这些文件的只读副本。
但是当你正在查看当前版本和一些旧版本之间的差异时(通过选择顶部提交和其中一个旧版本,使用Ctrl-单击并在右键单击菜单中选择“比较提交...” “)您无法编辑当前版本的文件。
在将任何较旧的版本(不仅仅是前一版本)与当前版本进行比较时,是否有办法在Visual Studio中的diff视图中编辑当前版本文件?
旁注:开发人员讨厌的一个奇怪的技巧是通过“保持更改”并进行提交重置为所需的旧版本,从而可以“与未修改比较”,就好像它是先前的提交一样。但这很糟糕且不受欢迎。
答案 0 :(得分:6)
遗憾的是,当从VS 2017 Git History工具窗口中扩展两个版本时,目前不支持这种情况,即使其中一个版本是当前的workdir版本。我们目前还没有能力从“更改”页面选择用于执行差异的特定版本。我将把它添加到我们的待办事项中,以便考虑将来的Visual Studio版本。
正如您所注意到的,差异有时可以从团队资源管理器中的Git Changes页面进行编辑。以下是我们如何确定差异窗口是否可编辑的摘要。
希望这有所帮助,并感谢提出这个问题。
答案 1 :(得分:2)
首先,确保使用(最新的2.41或更高版本,2018年2月)Visual Studio:issue 1454报告"与未修改的"比较以前遇到过一些问题。
第二,"与未修改的"比较相当于 git diff HEAD
(请参阅" what the difference between git diff HEAD
vs --staged
")
这就是" hack"是"重置为所需的旧修订版"保持更改"并且提交#34;:HEAD被重置为反映旧提交的提交,而您的本地更改仍然存在,从而启用"与未修改的比较"功能。
虽然" hacky和不受欢迎",但是在使用Visual Studio时使用较旧的提交来模拟该功能(而不是切换到命令行)
也许另一种方法是在旧提交上创建和签出新分支。如&#34; Why git keeps showing my changes when I switch branches (modified,added, deleted files) no matter if I run git add or not?&#34;中所述,您应保留当前的更改,但HEAD会更改为旧提交,再次允许&#34;与未修改的比较&#34;。< / p>
OP补充道:
相比之下,比较差异视图中的2个提交仅显示您无法编辑的临时文件夹中这些文件的只读副本。
比较两个旧版本之间的比较是不允许编辑:你会在哪里应用这些更改?
最好在其中一个版本上创建一个新分支,然后与其他提交进行比较。