81

我有 2 个分支,尚未准备好合并,但有一些补充逻辑,我想回顾一下(合并之前)

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

4

6 回答 6

77

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

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

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

于 2011-09-12T20:02:57.590 回答
15

使用 Git 2.5+(2015 年第二季度),Git 存储库将支持多个工作树git worktree add <path>(并且将替换contrib/workdir/git-new-workdir

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

更多内容请参见“使用 Git 的多个工作目录?

于 2015-05-12T09:12:31.460 回答
2

是的,在适当的照顾下是可能的。但是,您正在使用选项从常规 git 目录中“带走”一份副本--work-tree=<path>,因此除非您特别告知,否则 git 不会看到其中的更改。我在这里举了一个例子single-working-branch-with-git - 请参阅 UPDATED 部分。

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

于 2011-09-13T10:16:06.683 回答
1

我想到的第一件事是在单独的项目中检查每个分支。所以: 1. 在主克隆 (1) 上签出分支 A 2. 创建新克隆 (2) 3. 在克隆 2 中签出分支 B

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

于 2011-09-12T20:05:27.123 回答
-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 文档。

于 2011-09-12T20:07:53.857 回答
-1

现在git包括执行此操作的命令worktree

于 2015-12-30T20:28:59.850 回答