ChatGPT解决这个技术问题 Extra ChatGPT

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

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

您想要与简单的 git diff branch_1 branch_2 不同的东西吗? (注意,如果名称 branch_1 和 branch_2 也命名文件,则需要 git diff branch_1 branch_2 --
引用的重复项没有回答问题...用 git diff --name-status master..branchName 确定哪些文件已更改与使用 git diff branch_1 branch_2 之类的东西查看分支之间的确切差异明显不同。或者也许我错过了一些明显的东西......
“重复”不仅是一个不同的问题,而且这个问题是“git diff 两个分支”的第一名谷歌匹配。
git difftool branch..otherBranch 可让您查看所选可视化工具的差异。例如融合。这就是答案。

M
Mateen Ulhaq

使用 git diff

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

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

示例:git diff abc123..def567git diff HEAD..origin/master

这将产生两个分支的尖端之间的差异。如果您希望找到它们共同祖先的差异进行测试,您可以使用三个点而不是两个点:

git diff <commit>...<commit>

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

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

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

git diff commit1 commit2

相同的语法适用于将分支与标签或标签与另一个标签进行比较。
请注意,您还可以在上述两个命令之后添加文件或文件夹名称。
@chiyachaiya 您的解释对我有所帮助,但 git diff b1...b2 与 git diff b2...b1 不同。例如,一旦我们从 b1 启动 b2,并且如果我们对 b1 进行一些更改,git diff b2...b1 将显示在 b2 启动后对 b1 所做的更改。如果我们执行 git diff b1...b2 ,它将对 b2 进行不在 b1 中的更改。
如果您得到 fatal: bad revision 'some-branch',那么这可能是一个远程分支。你可能需要像 git diff remotes/origin/some-branch my-local-branch 这样的东西
git diff ..branch_2 将签出的分支与 branch_2 进行比较
M
Mateen Ulhaq

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

git checkout main
git diff branch2

这对我不起作用,它没有显示任何变化。我只有本地提交。
M
Mateen Ulhaq
git diff master..develop

选项:

添加 --name-only 以仅查看文件的名称。

在末尾添加 --folderOrFileName 可以查看特定文件或文件夹的变化。

要将本地分支与远程分支进行比较,然后运行 git fetch --all 以获取所有远程分支,然后运行: git diff --name-only [branchName]..origin/[branchName] 示例: git diff --name -仅开发..起源/开发。


A
Aminadav Glickshtein

有许多不同的方法来比较分支,这取决于您需要的特定用例。

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

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

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 statusgit diff 来查看新编辑与 branch_a 的差异。


B
Bip Lob

您可以通过 - git diff b1...b2 简单地显示差异,或者您可以使用 - git log b1..b2 显示提交差异您可以使用 - git log --oneline --graph --decorate --abbrev-commit b1..b2 以漂亮的图形方式查看提交差异


我不知道 git log b1 b2,谢谢!
A
Anuj

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

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


p
poleguy

有时很高兴将差异视为一棵树......

git difftool --dir-diff branch..otherBranch

例如,当 bitbucket decides 时,它将向您显示“三向合并”差异,而不是您选择的两个分支之间的实际完全差异。

这将在您选择的工具中show the diff as a tree。例如融合。

受@GregRundlett 评论的启发。