Is it possible to view multiple git branches at th

2019-03-08 23:22发布

I have 2 branches, which are not ready to be merged yet, but have some complementary logic, which I'd like to review (before merging)

Can I check out multiple git branches of the same project? Is it possible?

6条回答
狗以群分
2楼-- · 2019-03-08 23:34

Yes it is possible with appropriate care. However you are taking one of the copies 'away' from the regular git directory using --work-tree=<path> option, so changes there won't be seen by git unless you specially tell it. I gave an example here single-working-branch-with-git - see the UPDATED segment.

Note that the git-new-workdir doesn't work on Windows XP as it requires Unix style links.

查看更多
你好瞎i
3楼-- · 2019-03-08 23:35

With Git 2.5+ (Q2 2015), a Git repo will support multiple working trees with git worktree add <path> (and that will replace contrib/workdir/git-new-workdir)

Those "linked" working trees are actually recorded in the main repo new $GIT_DIR/worktrees folder (so that work on any OS, including Windows).

See more at "Multiple working directories with Git?"

查看更多
Emotional °昔
4楼-- · 2019-03-08 23:46

First thing that comes to my mind it to checkout each branch on separate project. So: 1. checkout branch A on primary clone (1) 2. create a new clone (2) 3. checkout branch B in clone 2

Second approach could be to create a new branch (aka C) and merge both branch A and B to it. If they are complimentary than this might help with your review.

查看更多
Fickle 薄情
5楼-- · 2019-03-08 23:50

You can simply copy the repository to a new location (either by literally copying the directory, or using git clone --shared) and check out one branch per location.

You can also use git-worktree for creating multiple working directories from a single instance of a repository.

Otherwise, the primary means for comparing files between branches prior to merging them is git diff.

查看更多
smile是对你的礼貌
6楼-- · 2019-03-08 23:50

Now git includes the command worktree to do exactly that.

查看更多
再贱就再见
7楼-- · 2019-03-08 23:52

As already mentioned, you can diff branches with 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.

Excerpt above is from Git documentation.

查看更多
登录 后发表回答