我使用git集成在Visual Studio 2015中进行编码。通常,我需要查看来自不同本地分支的代码,以便我可以同时分析来自每个分支的代码部分,并且可以轻松地在分支之间同时复制和粘贴代码。这与将现有更改从一个分支合并到另一个分支不同。我需要能够在屏幕上同时打开2个独立的分支。
Visual Studio可以在git分支之间切换,但是一旦你这样做,所有访问该git文件夹的开放Visual Studios也会切换。
我搜索并找到了一个解决方案,但它并不是最优的:检入所有内容,然后将源树复制到.git目录上一层。从原始目录在解决方案上打开一个Visual Studio,然后在复制目录中的解决方案上打开第二个Visual Studio实例。每个都是相互独立的,您可以在一个Visual Studio中打开不同的分支,而不会影响其他Visual Studio的行为。
有没有人有这个问题的解决方案,不涉及2个源代码副本?
答案 0 :(得分:1)
Git 2.5终于得到了一个答案,一个名为Git WorkTree的功能。
https://git-scm.com/docs/git-worktree
git存储库可以支持多个工作树,允许您使用 一次检查多个分支。使用git worktree添加一个新的 工作树与存储库相关联。这个新的工作树 被称为“链接工作树”而不是“主要工作树” 树“由”git init“或”git clone“编写。存储库有一个主要的 工作树(如果它不是一个裸存储库)和零或多个链接 工作树。
添加路径[branch]创建路径和checkout分支。该 新工作目录链接到当前存储库,共享 除工作目录特定文件(如HEAD)之外的所有内容 索引等 - 也可以指定为;它是。的代名词 @。{ - 1}
答案 1 :(得分:0)
有没有人能解决这个问题而不涉及2 源代码的副本?
不,但是有一个可行的解决方案(IMO),其中包含两个代码副本。
首先,我假设你有一些你在本地克隆的集中存储库。从您的本地克隆中,您有两个功能分支(让我们称之为FeatureA
和FeatureB
)。如果可以,请将本地存储库克隆到单独的文件夹中。在该新克隆中,结帐分支FeatureB
。在原始克隆(来自中央服务器的克隆)中,结帐分支FeatureA
。现在你可以做任何你想要的比较 - 虽然有两个代码副本。
这不会要求您检查您在任何代码副本中正在执行的任何工作。