如何区分本地分支和远程分支?
当前回答
你可以使用——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 <远程跟踪分支> <本地分支>
它告诉我,如果我推本地分支,什么将被删除,什么将被添加。当然,它是一样的,只是相反,但对我来说,它更可读,我更舒服地看着将要发生的事情。
推荐文章
- 当我试图推到原点时,为什么Git告诉我“没有这样的远程‘原点’”?
- 如何从远程分支中挑选?
- 如何查看一个分支中的哪些提交不在另一个分支中?
- 如何取消在github上的拉请求?
- HEAD和master的区别
- GIT克隆在windows中跨本地文件系统回购
- RPC失败;卷度传输已关闭,剩余未完成的读取数据
- 我应该在.gitignore文件中添加Django迁移文件吗?
- 错误:您对以下文件的本地更改将被签出覆盖
- Git rebase—即使所有合并冲突都已解决,仍然会继续报错
- 在Git中,我如何知道我的当前版本是什么?
- 跟踪所有远程git分支作为本地分支
- 自定义SSH端口上的Git
- git如何显示不存在于.gitignore中的未跟踪文件
- Git错误:遇到7个文件应该是指针,但不是