如何查看两个分支之间的差异?

问题描述 投票:0回答:10

如何查看分支

branch_1
branch_2
之间的差异?

git git-diff
10个回答
3745
投票

使用

git diff
.

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

<commit>
是分支名称、提交哈希或速记符号引用。

例子:

git diff abc123..def567
,
git diff HEAD..origin/master
.

这将在两个分支的提示之间产生差异。如果你想从他们的共同祖先中找到差异来测试,你可以使用 three 点而不是 two:

git diff <commit>...<commit>

要检查哪些文件不同,而不是内容有何不同,请使用

--name-only

git diff --name-only <commit>..​<commit>

请注意,在

<commit>..<commit>
(双点)语法中,点是可选的;以下是同义词:

git diff commit1 commit2

118
投票

转到一个分支(例如

main
),然后针对另一个分支运行
diff
(例如
branch2
):

git checkout main
git diff branch2

45
投票
git diff master..develop

选项:

  • 添加
    --name-only
    只看到文件的名称。
  • 在末尾添加
    --  folderOrFileName
    查看具体文件或文件夹的变化
  • 比较本地分支和远程分支,然后运行
    git fetch --all
    获取所有远程分支,然后运行:
    git diff --name-only [branchName]..origin/[branchName]
    
    示例:
    git diff --name-only develop..origin/develop
    .

14
投票

您可以通过以下方式简单地显示差异 -

git diff b1...b2
或者您可以使用 -
git log b1..b2
您可以使用一种很好的图形方式查看提交差异 -
git log --oneline --graph --decorate --abbrev-commit b1..b2


10
投票

有很多不同的方法来比较分支,这取决于您需要的具体用例。

很多时候你想比较是因为有些东西坏了,你想看看发生了什么变化,然后修复它,并在提交之前再次查看发生了什么变化。

就个人而言,当我想查看差异时我喜欢做什么:

git checkout branch_1 # checkout the oldest branch
git checkout -b compare-branch # create a new branch
git merge --no-commit --squash branch_2 # put files from the new branch in the working folder
git status # see file names that changes
git diff # see the content that changed.

使用这个解决方案你会看到差异,你也可以使用

git status
只看到文件名,最重要的部分你将能够在看到差异的同时执行
branch_2
(branch_2在工作树上)。如果有什么东西坏了,你可以编辑文件并修复它。任何时候,您都可以再次键入
git status
git diff
以查看新编辑与
branch_a
.

的区别

4
投票

有时很高兴看到差异作为一棵树......

git difftool --dir-diff branch..otherBranch

例如,当 bitbucket 出于性能原因而决定 向您显示“三向合并”差异,而不是您选择的两个分支之间的实际完全差异。

这将在您选择的工具中将差异显示为树。例如融合在一起。

受@GregRundlett 评论的启发。


1
投票

有两种方法可以查看两个分支之间的差异。这些命令将显示对每个分支中的文件所做的修改。

  1. 使用

    git diff
    命令查看Git仓库中两个分支的区别

    git diff branch1 branch2
    将显示所有差异。

    如果你想比较两个分支之间的特定文件,你可以使用这个命令:

    git diff branch1 branch2 path/to/file

  2. git log
    命令也可以用来查看两个分支的区别。运行带有 —left-right 参数的 git log 命令和您希望比较的两个分支,如下所示:

    git log --left-right branch1...branch2


0
投票

在Eclipse(J2EE版)中,打开“Window --> Show view --> Git Repository”。 如果你已经检查了 2 个本地 git 分支作为示例,那么你将在本地部分中有一堆分支。选择任何 2 个 git 本地分支并执行“右键单击并选择”在树菜单中相互比较“。

打开视图“Git Tree Compare”,您将能够并排查看所有文件的差异。


0
投票

在功能分支上,合并目标分支,然后对其运行差异。例如,如果您想查看您的

feature
分支添加到
master
的更改,请执行以下操作:

// Fetch from all remotes
git fetch

// Check out your feature branch
git checkout feature

// Merge origin/master to your branch
git merge origin/master

// Compare to origin/master
git diff origin/master

0
投票

如何查看两个分支之间的差异?

// to fetch from all remotes

git fetch

命令

git diff branch1 branch2
将显示2个分支之间的所有差异。

如果你想比较两个分支之间的特定文件,你可以使用这个命令:

git diff branch1 branch2 path/to/file

如果你在

branch2

使用命令

git diff branch1
查看branch1和branch2之间的所有差异。

© www.soinside.com 2019 - 2024. All rights reserved.