如何区分本地分支和远程分支?
当前回答
如果你在一个给定的分支上,并且你想要比较你的工作副本和你正在跟踪的上游分支,使用:
git diff @{upstream}
如果你想比较你当前的HEAD和上游分支(谢谢@Arijoon):
git diff @ @{upstream}
如果你的上游没有设置,你可以使用@{push}来获得一个与你设置推送的分支的差异(也来自@ arijoon的评论):
git diff @{push}
由于这个答案,git文档指定的修订有:
<branchname>@{upstream},例如master@{upstream}, @{u} 后缀 @{upstream}指向一个分支名(简称<branchname>@{u})的指 由branchname指定的分支所要构建的分支 顶部(配置了分支。<name>.)远程和分支。<name>.merge)。 缺少的分支名默认为当前分支名。
其他回答
简单的方法:
git fetch
git log -p HEAD..FETCH_HEAD
这将首先从默认远程(origin)获取更改。这将在克隆存储库时自动创建。你也可以显式:git fetch origin master。
然后git log用来比较你当前的分支和刚刚获取的分支。(-p(生成补丁)选项显示了差异。)
git diff <local branch> <remote>/<remote branch>
例如,git diff main origin/main,或者git diff feat尿素origin/next
当然,说到远程跟踪分支,你首先需要git fetch;并且您需要它拥有关于远程存储库中分支的最新信息。
在Visual Studio 2019中,只需要进行取回。不要拉代码。
这就是我所做的。我在.gitconfig文件中添加了以下内容,以便我可以使用Beyond Compare
File location: C:\Users\[username]\.gitconfig
添加以下
[diff]
tool = bc
[difftool "bc"]
path = c:/Program Files/Beyond Compare 4/bcomp.exe
打开命令提示符并进入工作目录。下面是本地开发分支和远程开发分支的比较:
git difftool dev origin/dev --dir-diff
这将打开Beyond Compare并打开包含不同文件的目录。如果没有任何变化,Beyond Compare将不会启动。
例子
git diff 'master' 'testlocalBranch'
如果你使用WebStorm这样的编辑器,你可以右键点击一个文件,选择比较分支,然后输入/选择你的分支。
我更理解输出:
Git diff <远程跟踪分支> <本地分支>
它告诉我,如果我推本地分支,什么将被删除,什么将被添加。当然,它是一样的,只是相反,但对我来说,它更可读,我更舒服地看着将要发生的事情。
推荐文章
- 为什么我需要显式地推一个新分支?
- 如何撤消最后的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之间的区别