如何区分本地分支和远程分支?


当前回答

你可以使用——compact-summary选项。

男人不一样

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

e.g.

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

其他回答

如果你正在比较当前分支和你想要git拉的东西,这里有一个简单的答案。

git fetch
git diff FETCH_HEAD

第一个命令将找出与当前分支对应的远程分支。FETCH_HEAD引用中该计算的人工产物。然后,第二个命令使用该引用与当前分支的引用进行比较。

设置

Git配置别名。Udiff 'diff @{u}'

带HEAD@{upstream}的差动HEAD

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远程显示

你可以看到单个远程(例如origin)的分支/跟踪配置如下:

Git远程显示来源

一旦你确定了适当的起源分支,只需做一个正常的diff:)

git diff [MY_LOCAL] MY_REMOTE_BRANCH

如果你想看到的区别只是文件名的改变,那么使用:

git diff --name-status <remote-branch> <local-branch>

否则,这将显示两个分支之间的所有差异:

git diff <remote-branch> <local-branch>

第一个类型

git branch -a

获取可用分支的列表。在输出中,您可能会看到如下内容

* master
  remotes/main/master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
  remotes/origin/mt
  remotes/upstream/master
  remotes/upstream/mt

然后显示差异

git diff --stat --color remotes/main/master..origin/master
git diff remotes/main/master..origin/master

我更理解输出:

Git diff <远程跟踪分支> <本地分支>

它告诉我,如果我推本地分支,什么将被删除,什么将被添加。当然,它是一样的,只是相反,但对我来说,它更可读,我更舒服地看着将要发生的事情。