git:'log master..origin/master'没有像预期的那样运行

问题描述:

我试图将'master'的副本与它跟踪的远程存储库上的副本进行比较。我认为下面的命令会起作用,而且往往似乎是这样。然而,有时它不会产生任何东西,但我知道远程分支有很多变化,我可以通过拉动来确认。git:'log master..origin/master'没有像预期的那样运行

git log master..origin/master 

任何人都可以解释这种行为,并告诉我应该用什么命令来确定本地和远程之间的变化?

[另一个数据:我曾经发生过'git log master..origin/master'什么也没有产生。然后我做了拉。由于我有一些文件的工作副本,拉失败。在此之后,'git log master..origin/master'确实显示了我的差异。看来拉已经更新了一些本地日志?如果是这样,我怎么能做到这一点,而不做(或试图做)拉?]

这是因为origin/master是您的存储库中的的远程分支。它代表最后一次“查看”(获取,这是拉和远程更新的一部分)的起源主分支的起始位置。

当您拉动时,执行获取,并且origin/master得到更新。然后调用合并,这可能会也可能不会失败,但这对您的远程分支没有影响。

您还可以使用git fetch --allgit fetch origin来获取这些更新。

pullfetchmerge。从远程服务器获取下载日志。我认为这是你在这里观察到的。

http://www.kernel.org/pub/software/scm/git/docs/git-pull.html

,如果你没有取(在你的本地回购原籍本地引用)的东西离开原点它只会告诉你一些差异。

这就是为什么你看到后的差异甚至失败git pull

  • 它首先获取
  • 然后试图合并(和失败)

,但是,对于足够git log来提取您需要的信息,因为它们在您当地的回购(fetch部分之后)