关于git:如何将本地分叉存储库与可能对原始存储库进行的更改进行比较?

How can I compare my local forked repository with changes that may have been made to the original?

我想将我分叉的存储库的本地克隆与原始/上游存储库进行比较,看看是否已经进行了进一步的提交,要求我进行拉/合并。我想从命令行执行此操作。

我使用以下命令将原始存储库添加到远程程序列表中:

1
git remote add upstream <original repo URL>

这在Github自己的页面中概述了分支分支的主题。

但是,当我按照这里的建议运行git diff upstreamgit diff upstream/master或按照这里的建议运行git diff master upstream/master时,我得到:

1
2
3
fatal: ambiguous argument 'upstream': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'

命令git diff origin/master不会返回错误(或与此相关的任何内容)。我错过什么了吗?


在本地回购和上游回购之间运行git diff之前,必须首先获取上游回购。然后在本地进行比较。

1
git fetch upstream

这不会影响回购的工作分支,但它会添加一组"远程"分支,您可以通过git branch -a看到这些分支。

一旦你有了这些,使用:

1
git diff master upstream/master

这会将您拥有的本地存储库与对原始存储库所做的任何更新进行比较。此命令的变体将处理您可能对自己的分支所做的更新,或者像往常一样检查共同祖先(例如,git diff master...upstream/master)。