如何区分本地分支和远程分支?
当前回答
在我的情况下,我有一个名为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 <远程跟踪分支> <本地分支>
它告诉我,如果我推本地分支,什么将被删除,什么将被添加。当然,它是一样的,只是相反,但对我来说,它更可读,我更舒服地看着将要发生的事情。
如果你想看到的区别只是文件名的改变,那么使用:
git diff --name-status <remote-branch> <local-branch>
否则,这将显示两个分支之间的所有差异:
git diff <remote-branch> <local-branch>
简单的方法:
git fetch
git log -p HEAD..FETCH_HEAD
这将首先从默认远程(origin)获取更改。这将在克隆存储库时自动创建。你也可以显式:git fetch origin master。
然后git log用来比较你当前的分支和刚刚获取的分支。(-p(生成补丁)选项显示了差异。)
git difftool <commit> .
这将比较您想要的提交和您的本地文件。不要忘记最后的点(本地)。
例如,比较你的本地文件和一些提交:
git difftool 1db1ef2490733c1877ad0fb5e8536d2935566341 .
(并且你不需要git fetch,除非需要与new commit进行比较)
如果你正在比较当前分支和你想要git拉的东西,这里有一个简单的答案。
git fetch
git diff FETCH_HEAD
第一个命令将找出与当前分支对应的远程分支。FETCH_HEAD引用中该计算的人工产物。然后,第二个命令使用该引用与当前分支的引用进行比较。
推荐文章
- 当我试图推到原点时,为什么Git告诉我“没有这样的远程‘原点’”?
- 如何从远程分支中挑选?
- 如何查看一个分支中的哪些提交不在另一个分支中?
- 如何取消在github上的拉请求?
- HEAD和master的区别
- GIT克隆在windows中跨本地文件系统回购
- RPC失败;卷度传输已关闭,剩余未完成的读取数据
- 我应该在.gitignore文件中添加Django迁移文件吗?
- 错误:您对以下文件的本地更改将被签出覆盖
- Git rebase—即使所有合并冲突都已解决,仍然会继续报错
- 在Git中,我如何知道我的当前版本是什么?
- 跟踪所有远程git分支作为本地分支
- 自定义SSH端口上的Git
- git如何显示不存在于.gitignore中的未跟踪文件
- Git错误:遇到7个文件应该是指针,但不是