如何区分本地分支和远程分支?
当前回答
这很简单。你可以使用:git diff remote/my_topic_branch my_topic_branch
其中my_topic_branch是您的主题分支。
其他回答
如果你想看到的区别只是文件名的改变,那么使用:
git diff --name-status <remote-branch> <local-branch>
否则,这将显示两个分支之间的所有差异:
git diff <remote-branch> <local-branch>
在我的情况下,我有一个名为heroku的第二个远程,这不是起源,因为它不同步,我在试图运行git diff master heroku/master时得到了这个错误:
致命:模糊的参数“heroku/master”:未知的修订或路径不在工作树中。
或者当尝试其他方法git diff master. heroku/master:
致命:糟糕的修订'master..heroku/master'
解决方案是在运行git diff之前显式地在git fetch中提到远程名称,在我的情况下:
$ git fetch heroku
$ git diff master heroku/master
这很简单。你可以使用:git diff remote/my_topic_branch my_topic_branch
其中my_topic_branch是您的主题分支。
git diff <local branch> <remote>/<remote branch>
例如,git diff main origin/main,或者git diff feat尿素origin/next
当然,说到远程跟踪分支,你首先需要git fetch;并且您需要它拥有关于远程存储库中分支的最新信息。
设置
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添加?
- Rubymine:如何让Git忽略Rubymine创建的.idea文件
- Gitignore二进制文件,没有扩展名
- Git隐藏错误:Git隐藏弹出并最终与合并冲突
- 了解Git和GitHub的基础知识
- 没有。Git目录的Git克隆
- Git与Mercurial仓库的互操作性
- 忽略git中修改(但未提交)的文件?
- “git restore”命令是什么?“git restore”和“git reset”之间有什么区别?
- Git合并与强制覆盖
- Git拉另一个分支
- 在Bash命令提示符上添加git分支
- 如何更改Git日志日期格式
- git pull -rebase和git pull -ff-only之间的区别