git 我如何才能看到两个分支之间的差异?

hfyxw5xn  于 2023-10-14  发布在  Git
关注(0)|答案(9)|浏览(207)

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

ncgqoxb0

ncgqoxb01#

使用git diff

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

<commit>是一个分支名称、一个提交哈希或一个简写符号引用。
示例如下:
git diff abc123..def567
git diff HEAD..origin/master
这将产生两个分支的尖端之间的差异。如果你想从它们的共同祖先中找到差异来测试,你可以使用 * 三 * 点而不是 * 两 * 点:

git diff <commit>...<commit>

要检查哪些文件不同,而不是内容如何不同,请使用--name-only

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

注意,在<commit>..<commit>(两个点)语法中,点是可选的;以下是同义词:

git diff commit1 commit2
368yc8dk

368yc8dk2#

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

git checkout main
git diff branch2
a7qyws3x

a7qyws3x3#

git diff master..develop

选项:

  • 添加--name-only以仅查看文件的名称。
  • 在最后添加-- folderOrFileName以查看特定文件或文件夹的更改。
  • 要比较本地分支和远程分支,请运行git fetch --all获取所有远程分支,然后运行:
git diff --name-only [branchName]..origin/[branchName]

示例:git diff --name-only develop..origin/develop

8zzbczxx

8zzbczxx4#

你可以简单地用-git diff b1...b2来显示差异或者你可以用-git log b1..b2来显示提交差异你可以用-git log --oneline --graph --decorate --abbrev-commit b1..b2以一种漂亮的图形方式来看到提交差异

jchrr9hc

jchrr9hc5#

有许多不同的方法来比较分支,这取决于您需要的特定用例。
很多时候你想比较,因为有些东西坏了,你想看看有什么变化,然后修复它,再看看在提交之前有什么变化。
就我个人而言,当我想看看我喜欢做的事情的差异:

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.

使用此解决方案,您将看到diff,您还可以使用git status只看到文件名,最重要的是,您将能够在执行branch_2时看到diff(branch_2位于工作树上)。如果有东西坏了,你可以编辑文件并修复它。任何时候,您都可以再次输入git statusgit diff,以查看新编辑与branch_a的差异。

vh0rcniy

vh0rcniy6#

有两种方法可以查看两个分支之间的差异。对每个分支中的文件所做的修改将通过这些命令显示。
1.使用git diff命令查看Git仓库中两个分支之间的差异。
git diff branch1 branch2将显示所有差异。
如果你想在两个分支之间比较一个特定的文件,你可以使用这个命令:
git diff branch1 branch2 path/to/file

  1. git log命令也可以用来查看两个分支之间的差异。使用-left-right参数运行git log命令,并像这样比较两个分支:
    git log --left-right branch1...branch2
vsdwdz23

vsdwdz237#

有时候把差异看成一棵树也不错...
git difftool --dir-diff branch..otherBranch
或者将远程分支与本地工作区进行比较.
git difftool --dir-diff origin/branch .
例如,当bitbucket decides for performance reasons时,它将only显示“三路合并”的差异,而不是您选择的两个分支之间的实际完整差异。
这将show the diff as a tree在您选择的工具。例如在融合中。
@GregRundlett评论的启发。

9nvpjoqh

9nvpjoqh8#

在特性分支上,合并目标分支,然后对它运行一个diff。例如,如果您想查看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
ulydmbyx

ulydmbyx9#

在Eclipse(J2EE版本)中,打开“窗口-->显示视图--> Git仓库”。如果你已经 checkout 了2个本地git分支作为例子,那么你将在本地部分有一堆分支。选择任意2个git本地分支,然后右键单击并选择“在树菜单中相互比较”。
打开视图“Git Tree Compare”,你将能够看到所有文件的并排差异。

相关问题