2011-09-12 47 views
40

我有2个分支,尚未准备好合并,但有一些互补的逻辑,我想查看(合并之前)是否有可能同一个项目同时查看多个git分支?

我可以检出同一个项目的多个git分支吗?可能吗?

+0

您将可以使用Git 2.5+及其新的'git checkout --to = '命令来执行此操作。请参阅[我的答案](http://stackoverflow.com/a/30186481/6309)。 – VonC

+0

实际的语法是'git worktree add '。我更新了[我的答案](http://stackoverflow.com/a/30186481/6309)。 – VonC

回答

36

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

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

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

+3

注意:我意识到你的答案今天是downvoted(http://stackoverflow.com/posts/7393302/timeline),但我没有downvoted它;)我简单地(2年前)指出新的git worktree命令。 – VonC

1

我想起来的第一件事就是在单独的项目上签出每个分支。 所以:初级克隆(1) 2. 1.结帐支路A创建一个新的克隆(2) 3.结帐支路B在克隆2

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

-1

前面已经提到的,你可以diff的分支机构,git的差异:以上

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的文档。

1

是的,它可以适当的照顾。但是,您正在使用--work-tree=<path>选项从常规git目录中取出其中一个“副本”,因此除非您特别说明,否则git将不会看到更改。我在这里举了一个例子single-working-branch-with-git - 请参阅UPDATED段。

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

6

使用Git 2.5+(Q2 2015),一个Git回购将支持多个工作树木git worktree add <path>(这将取代contrib/workdir/git-new-workdir

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

多见于 “Multiple working directories with Git?

+0

请注意,与git-new-workdir不同,git worktree不允许为同一分支创建多个工作区:/ – NikiC

+2

@NikiC您可以通过添加'--force'标志('-f'也可以)根据[文档](https://git-scm.com/docs/git-worktree#_options) –

-1

现在git包括命令worktree做到这一点。

相关问题