如何比较本地 Git 分支和远程分支

1442

如何查看本地分支和远程分支之间的diff?


13
这个问题后来又被问到了。它有一个不错的答案: https://dev59.com/wWct5IYBdhLWcg3wpO7H - rustybeanstalk
5
示例:git diff master origin/master(其中master是本地主分支,origin/master是远程主分支)。 - Dung
@klyngbaek,特别是这个答案 ;-) - user8554766
我最初尝试使用 git diff HEAD origin/HEAD,但它似乎指向了一个与我预期不同的远程分支。使用完整的分支名称可以按预期工作。 - Deanna
24个回答

0

顺便提一下,您可以使用--compact-summary选项。

man git diff

在diffstat中输出扩展头信息的简化摘要,例如文件创建或删除(“new”或“gone”,如果是符号链接,则为可选的“+l”)和模式更改(添加或删除可执行位的“+x”或“-x”)。 信息放置在文件名部分和图形部分之间。 意味着--stat。

例如:

git diff $(current_branch) origin/$(current_branch) 

如果其他人看到这个答案,我需要交换当前分支和origin/current_branch的位置。如果按照原样使用该命令,如果您已将文件添加到当前本地分支,则这些文件不会反映在差异中。git diff origin/main $(git branch --show-current) - SW_user2953243

-1
假设您已经将您的origin设置为远程仓库。那么,运行以下命令:git diff <local branch> <origin>/<remote branch name>

-1

设置

git config alias.udiff 'diff @{u}'

将HEAD与HEAD@{upstream}进行比较

git fetch  # Do this if you want to compare with the network state of upstream; if the current local state is enough, you can skip this
git udiff

与任意远程分支进行差异比较

这回答了你标题中的问题(“它的远程”); 如果你想要与“一个远程”(未配置为该分支的上游)进行差异比较,你需要直接针对它。你可以使用以下命令查看所有远程分支:

git branch -r

你可以使用以下命令查看所有已配置的远程:

git remote show

你可以使用以下命令查看单个远程(例如 origin)的分支/跟踪配置:

git remote show origin

一旦确定了适当的源分支,就可以进行正常的差异比较 :)

git diff [MY_LOCAL] MY_REMOTE_BRANCH


-2
Visual Studio 2019 中,只需执行 fetch,不要 pull 代码。
这是我所做的。我在 .gitconfig 文件中添加了以下内容,以便我可以使用Beyond Compare
File location: C:\Users\[username]\.gitconfig

以下是新增内容

[diff]
    tool = bc
[difftool "bc"]
    path = c:/Program Files/Beyond Compare 4/bcomp.exe

打开命令提示符并进入工作目录。我提供了以下内容,以比较本地dev分支和远程dev分支:
git difftool dev origin/dev --dir-diff

这将打开Beyond Compare并打开具有不同文件的目录。如果没有任何更改,Beyond Compare将不会启动。


为什么这个问题会有-2票?嗯。 - Ziggler

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接