如何使用相同的Git项目和不同的分支打开2个Visual Studio实例

Ewe*_*ton 20 git visual-studio

我需要打开2个Visual Studio实例,一个将打开我只看项目X /分支1的代码.另一个,将用于代码项目X /分支2.如何做到这一点并且不要提交操作中的松动更改?

Rip*_*pp_ 19

这里的问题与visual studio无关,而是与git的工作有关.当您在git中检出分支时,它会将该分支放入您的工作树中(文件结构,无论您希望调用它).

使用git,您一次只能检出一个分支,但等待有一个解决方案!通过使用该git worktree命令,您可以为另一个目录中的同一存储库创建第二个工作树.然后,您可以在visual studio中打开该工作树,以检出两个不同的分支.

假设您有"C:\ projects\the_project",并且想要在"C:\ projects\the_project_2"中创建一个新的工作树,打开git bash,nativate到项目的目录并运行git worktree add ../the_project_2 <branch>分支是您要检查的分支出.

这将创建一个新目录("C:\ projects\the_project_2")并将分支签出到其中,而不必重新克隆存储库.

有关更多信息,请参阅git worktree文档.

注意:早期版本的visual studio不知道如何处理其他工作树,也不会将它们识别为git存储库.

  • 澄清一下:“C:\projects\the_project”是包含解决方案、项目、源的 Git 存储库...然后在一个 VS 中打开“the_project”中的解决方案,在第二个 VS 中打开“the_project_2”中的解决方案。然后您可以单独更改每个 VS 实例中的分支。 (2认同)

mil*_*ndt 6

如果需要在Visual Studio中打开代码,则需要检出该分支。由于您无法同时签出同一目录中的两个不同分支,因此您无法避免签出单独目录中的每个分支。

但你可以将一个目录的远程设置为另一个git目录,这样就可以在本地同步,不需要有外部链接。

假设您希望将两个分支都作为根公共目录 ProjectX 的子目录:

cd ProjectX
git clone -b branch1 <remote repo of project X> directory_branch1 
git clone -b branch2 directory_branch1 directory_branch2
Run Code Online (Sandbox Code Playgroud)

2019 年 5 月更新: 现在git worktree可以使用,并受到基于 GUI 的工具的支持,这可能是当今推荐使用的解决方案。


小智 6

正如 @ewan 在评论中所说,“将存储库克隆两次到不同的目录”是最快、最简单的工作流程。