如何查看分支
branch_1
和 branch_2
之间的差异?
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
转到一个分支(例如
main
),然后针对另一个分支运行diff
(例如branch2
):
git checkout main
git diff branch2
git diff master..develop
选项:
--name-only
只看到文件的名称。-- folderOrFileName
查看具体文件或文件夹的变化git fetch --all
获取所有远程分支,然后运行:
git diff --name-only [branchName]..origin/[branchName]
示例:git diff --name-only develop..origin/develop
.您可以通过以下方式简单地显示差异 -
git diff b1...b2
或者您可以使用 -
git log b1..b2
您可以使用一种很好的图形方式查看提交差异 -
git log --oneline --graph --decorate --abbrev-commit b1..b2
有很多不同的方法来比较分支,这取决于您需要的具体用例。
很多时候你想比较是因为有些东西坏了,你想看看发生了什么变化,然后修复它,并在提交之前再次查看发生了什么变化。
就个人而言,当我想查看差异时我喜欢做什么:
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
. 的区别
有时很高兴看到差异作为一棵树......
git difftool --dir-diff branch..otherBranch
例如,当 bitbucket 出于性能原因而决定 仅 向您显示“三向合并”差异,而不是您选择的两个分支之间的实际完全差异。
这将在您选择的工具中将差异显示为树。例如融合在一起。
受@GregRundlett 评论的启发。
有两种方法可以查看两个分支之间的差异。这些命令将显示对每个分支中的文件所做的修改。
使用
git diff
命令查看Git仓库中两个分支的区别
git diff branch1 branch2
将显示所有差异。
如果你想比较两个分支之间的特定文件,你可以使用这个命令:
git diff branch1 branch2 path/to/file
git log
命令也可以用来查看两个分支的区别。运行带有 —left-right 参数的 git log 命令和您希望比较的两个分支,如下所示:
git log --left-right branch1...branch2
在Eclipse(J2EE版)中,打开“Window --> Show view --> Git Repository”。 如果你已经检查了 2 个本地 git 分支作为示例,那么你将在本地部分中有一堆分支。选择任何 2 个 git 本地分支并执行“右键单击并选择”在树菜单中相互比较“。
打开视图“Git Tree Compare”,您将能够并排查看所有文件的差异。
在功能分支上,合并目标分支,然后对其运行差异。例如,如果您想查看您的
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
// 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之间的所有差异。