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

时间:2016-04-17 19:32:55

标签: git visual-studio

我需要打开2个Visual Studio实例,我将打开一个实例来查看Project X / Branch 1的代码。 另一个,将用于Project X / Branch 2中的代码。 怎么做,不要在提交操作中松动更改?

4 个答案:

答案 0 :(得分:11)

这里的问题与Visual Studio无关,而是git的工作。 当您在git中检出一个分支时,它将把该分支放入您的工作树中(文件结构,无论您希望调用什么)。

使用git一次只能签出一个分支,但是请等待解决方案! 通过使用public void visitMethodCallExpression(PsiMethodCallExpression expression) { super.visitCallExpression(expression); PsiUtil.getMemberQualifiedName(expression.resolveMethod()); expression.resolveMethod().getContainingClass().getName(); expression.resolveMethod().getContainingClass().getQualifiedName(); } 命令,您可以在不同目录中为同一存储库创建第二个工作树。然后,您可以在Visual Studio中打开该工作树,以检出两个不同的分支。

假设您拥有“ C:\ projects \ the_project”,并且想在“ C:\ projects \ the_project_2”处创建一个新的工作树,打开git bash,导航至项目目录并运行git worktree您要在新工作树中检出的分支在哪里?

这将创建一个新目录(“ C:\ projects \ the_project_2”),并将分支检入该目录,而无需重新克隆存储库。

有关更多信息,请参见git worktree documentation

注意:Visual Studio的早期版本不知道如何处理其他工作树,因此不会将它们识别为git存储库。

答案 1 :(得分:1)

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

但您可以将一个目录的远程设置为另一个git目录,这样您就可以在本地进行同步,而不需要任何外部目录。

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

cd ProjectX
git clone -b branch1 <remote repo of project X> directory_branch1 
git clone -b branch2 directory_branch1 directory_branch2

更新于2019年5月: 由于git woorktree现在正在使用基于GUI的工具并得到支持,这可能是今天使用的解决方案。

答案 2 :(得分:1)

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

答案 3 :(得分:0)

如果您不关心源分支的git连接(您只是在看而不修改),则始终可以在该分支处于活动状态时复制包含解决方案的文件夹。那么一旦目标分支处于活动状态,您就可以打开该分支的非源代码控制版本