Tch*_*uan 36 git visual-studio-2015 azure-devops
有没有办法在Visual Studio 2015中获取文件的特定版本(来自特定提交) - 团队资源管理器/团队服务Git?
我只是希望使用以前版本的文件来运行解决方案,只是为了查看过去的运行情况,然后回到最新版本继续开发.
我没有创建任何分支.我一直在"主"分支.
Dav*_*haw 45
在Visual Studio 2015中,如果您执行" 查看历史记录"(从" 团队资源管理器" 的" 更改"面板上的" 操作"菜单中):
然后右键单击您感兴趣的提交:
您可以从那里创建一个分支:
我看不到在Visual Studio中签出提交的方法.
使用命令行,您可以检查要使用的提交SHA:
git checkout 9eab01d9
Run Code Online (Sandbox Code Playgroud)
完成后,再次检查主人:
git checkout master
Run Code Online (Sandbox Code Playgroud)
您可能会收到有关处理分离头的警告,在这种情况下,您可以临时创建分支:
git checkout -b temp-branch-name 9eab01d9
Run Code Online (Sandbox Code Playgroud)
对于Git命令行感到满意是一个好主意,Visual Studio工具正在出现,但它缺少很多功能.
Chr*_*ing 22
感谢Matt Frear指出我的原始答案会将整个解决方案重置为特定提交,而问题是如何使用一个文件的特定版本,同时保留最新的其他内容.将原始帖子内容保留在底部,以防有人发现有用.
要保持最新的整个解决方案,但使用旧版本的单个文件:
使用Visual Studio 2015 Update 3:
我将添加屏幕截图并清理/重新格式化答案以便更容易理解,但我希望得到一个修正后的答案,它会更准确地解决问题,直到我有时间重新审视它.

您现在将拥有存储库中每个文件的最新文件,除了您刚刚撤消更改的文件.您现在可以在最新提交时再次重置混合,以仅查看您在团队资源管理器中使用旧版本的文件→ 更改,但如果您要执行的只是运行解决方案,则此步骤是不必要的.
要将整个解决方案/源存储库重置为特定提交:
使用Visual Studio 2015 Update 3:
重要
使用此方法,任何传出提交都将丢失.
确保执行步骤1(推送任何传出提交)


右键单击所需的提交,然后选择重置 → 重置和删除更改( - 硬).
重置和删除更改( - 硬)"">
重置和删除更改( - 硬)"">.在团队资源管理器 → 同步,然后在查看历史记录窗口中,您将最终得到从所需提交到远程分支中最新提交的传入提交,并且您的本地代码将匹配所需的提交.
完成后,执行团队资源管理器 → 同步中的拉动,将本地分支带到远程分支的最新提交.
看到这个很好的答案解释了'git reset'命令以及--hard vs --mixed之间的区别.
(这适用于 VS2015 和 VS2017。)
请注意,这个问题和这个答案适用于单个文件(或少量文件)。如果您想对许多文件执行此操作,只需从所需的提交创建一个新分支,或将其硬重置为所需的提交,就像其他答案所建议的那样。但由于检查旧的提交可能需要很多时间,特别是对于大型存储库,我相信这是单个文件最简单的方法:
现在您可以对该文件执行任何您想要执行的操作,然后在完成后撤消挂起的更改。