如何区分本地分支和远程分支?
当前回答
这很简单。你可以使用:git diff remote/my_topic_branch my_topic_branch
其中my_topic_branch是您的主题分支。
其他回答
如果你正在比较当前分支和你想要git拉的东西,这里有一个简单的答案。
git fetch
git diff FETCH_HEAD
第一个命令将找出与当前分支对应的远程分支。FETCH_HEAD引用中该计算的人工产物。然后,第二个命令使用该引用与当前分支的引用进行比较。
git difftool <commit> .
这将比较您想要的提交和您的本地文件。不要忘记最后的点(本地)。
例如,比较你的本地文件和一些提交:
git difftool 1db1ef2490733c1877ad0fb5e8536d2935566341 .
(并且你不需要git fetch,除非需要与new commit进行比较)
我一直看到这个错误
git diff main origin/master
fatal: ambiguous argument 'main': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
解决方案:我必须先推git(因为远程和本地都需要是最新的),然后这样工作:
git diff master origin/master
如果你在一个给定的分支上,并且你想要比较你的工作副本和你正在跟踪的上游分支,使用:
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 diff --name-status <remote-branch> <local-branch>
否则,这将显示两个分支之间的所有差异:
git diff <remote-branch> <local-branch>
推荐文章
- 如何查看一个分支中的哪些提交不在另一个分支中?
- 如何取消在github上的拉请求?
- HEAD和master的区别
- GIT克隆在windows中跨本地文件系统回购
- RPC失败;卷度传输已关闭,剩余未完成的读取数据
- 我应该在.gitignore文件中添加Django迁移文件吗?
- 错误:您对以下文件的本地更改将被签出覆盖
- Git rebase—即使所有合并冲突都已解决,仍然会继续报错
- 在Git中,我如何知道我的当前版本是什么?
- 跟踪所有远程git分支作为本地分支
- 自定义SSH端口上的Git
- git如何显示不存在于.gitignore中的未跟踪文件
- Git错误:遇到7个文件应该是指针,但不是
- GitHub克隆与OAuth访问令牌
- 移动(或“撤销”)最后一个git提交到非暂存区域