如何查看分支 branch_1
和 branch_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 difftool branch..otherBranch
可让您查看所选可视化工具的差异。例如融合。这就是答案。
使用 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
转到一个分支(例如 main
),然后针对另一个分支(例如 branch2
)运行 diff:
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 -仅开发..起源/开发。
有许多不同的方法来比较分支,这取决于您需要的特定用例。
很多时候你想比较,因为有东西坏了,你想看看发生了什么变化,然后修复它,然后在提交之前再次查看发生了什么变化。
就个人而言,当我想查看差异时,我喜欢做什么:
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 diff b1...b2
简单地显示差异,或者您可以使用 - git log b1..b2
显示提交差异您可以使用 - git log --oneline --graph --decorate --abbrev-commit b1..b2
以漂亮的图形方式查看提交差异
在 Eclipse(J2EE 版本)中,打开“Window --> Show view --> Git Repository”。如果您已经检查了 2 个本地 git 分支作为示例,那么您将在本地部分拥有一堆分支。选择任意 2 个 git 本地分支并执行“右键单击并选择“在树形菜单中相互比较”。
打开视图“Git Tree Compare”,您将能够并排查看所有文件的差异。
有时很高兴将差异视为一棵树......
git difftool --dir-diff branch..otherBranch
例如,当 bitbucket decides 时,它将仅向您显示“三向合并”差异,而不是您选择的两个分支之间的实际完全差异。
这将在您选择的工具中show the diff as a tree。例如融合。
受@GregRundlett 评论的启发。
fatal: bad revision 'some-branch'
,那么这可能是一个远程分支。你可能需要像git diff remotes/origin/some-branch my-local-branch
这样的东西git diff ..branch_2
将签出的分支与 branch_2 进行比较