是否可以同时为同一个项目查看多个git分支?

时间:2011-09-12 20:00:18

标签: git branch git-checkout

我有2个分支,尚未准备好合并,但有一些互补的逻辑,我想审查(合并前)

我可以查看同一项目的多个git分支吗?有可能吗?

6 个答案:

答案 0 :(得分:52)

您只需将存储库复制到新位置(通过逐字复制目录或使用git clone --shared)并检查每个位置的一个分支。

您还可以使用git-worktree从存储库的单个实例创建多个工作目录。

否则,在合并之前比较分支之间文件的主要方法是git diff

答案 1 :(得分:9)

使用Git 2.5+(2015年第二季度),Git仓库将支持 git worktree add <path> 多个工作树(这将取代contrib/workdir/git-new-workdir

那些&#34;链接&#34;工作树实际上记录在主repo新$GIT_DIR/worktrees文件夹中(以便在任何操作系统上工作,包括Windows)。

请参阅&#34; Multiple working directories with Git?&#34;

答案 2 :(得分:1)

我首先想到的是检查单独项目中的每个分支。 所以: 1.主要克隆上的结账分支A(1) 2.创建一个新的克隆(2) 3.克隆2中的结帐分支B

第二种方法可以是创建一个新的分支(又名C)并将分支A和B合并到它。 如果他们是免费的,这可能有助于您的审查。

答案 3 :(得分:1)

是的,可以通过适当的照顾。但是你使用--work-tree=<path>选项从常规git目录中删除其中一个副本,因此除非你特别说明,否则git不会看到更改。我在这里给出了一个例子single-working-branch-with-git - 请参阅更新的细分。

请注意,git-new-workdir在Windows XP上不起作用,因为它需要Unix样式链接。

答案 4 :(得分:-1)

如前所述,您可以使用git diff来扩展分支:

git diff [--options] <commit> [--] [<path>…]

This form is to view the changes you have in your working tree relative to the named <commit>. You can use HEAD to compare it with the latest commit, or a branch name to compare with the tip of a different branch.

以上摘录来自Git文档。

答案 5 :(得分:-1)

现在git包含命令worktree来完成该操作。