在不克隆的情况下比较两个 Git 分支

Compare two Git branches without cloning

使用 Git CLI 我们可以比较两个 git 分支 而无需克隆 其中任何一个吗? (相同的回购协议)

例如 分支机构:

  1. 硕士
  2. test_branch1
  3. test_branch2

我想要一个命令,借助它我可以比较如下内容:

git diff test_branch1 test_branch2

您不克隆分支,而是克隆存储库本身。如果你想比较远程分支,你可以这样做:

git fetch
git diff origin/branch_1 origin/branch_2

如果您不想从存储库中获取文件,您可以执行以下操作:

mkdir example
git init
git remote add origin <remote URL>
git fetch
git diff origin/branch_1 origin/branch_2

如果不克隆或获取提交,您不能在本地 运行 git diff。如果你想避免 git clone/fetch 还有两个选项。

如果您可以通过 SSH 访问远程存储库,您可以 运行 git diff 直接在远程服务器上:

ssh <user@origin-URL> """
    cd /path/to/repository &&
    git diff test_branch1 test_branch2
"""

如果您没有 SSH 访问权限,但存储库托管在具有 Web 界面的服务器上(您在问题中使用了标签 [gitlab]),那么您可以使用 Web 界面来比较提交。例如:https://gitlab.com/sqlobject/sqlobject/compare/ed64be0ed032055b0a6613fe3051d83a74ded566...bebfdf9512ca6cdf94a3724dc2625a2288246945

如果您既没有 SSH 也没有 Web 访问权限,您唯一的选择是在本地 clone/fetch 和 运行 git diff