git fetch之后的Git日志

时间:2015-11-04 15:27:14

标签: git git-log

git log之后如何获得与git fetch相同的结果?{/ 1}}

我已经克隆了两个相同的存储库。第一个只需git pull,第二个就有clone标志。一段时间后,我为第一个存储库执行了--bare,为第二个存储库执行了git pull

如果我尝试检查git fetch的存储库,我会得到不同的结果。

git log

3 个答案:

答案 0 :(得分:1)

正如您在git pull的文档中看到的那样,git pull实际上是git fetch后跟git merge。因此,当您pull时,您的分支会提前到HEAD,而当您fetch则不是。git merge。您需要在git fetch之后添加git log,以使routes.rb结果相同。

答案 1 :(得分:1)

来自git-log联机帮助页:

--all
    Pretend as if all the refs in refs/ are listed on the command line as <commit>.

使用--all,git log将查看所有头(本地分支),远程分支和标记,并显示图中可从任何引用中访问的所有内容的日志条目。

如果你对两个repos都进行了git fetch(并且git pull意味着git fetch),那么这些东西中的一些应该在你的两个repos之间保持一致:特别是远程分支和带注释的标记。

然而,其他事情可能不一致。非注释标签可能不会在两者之间共享,而本地分支可能会有所不同。

在您的第二个回购中,您正在使用--bare。根据定义,你根本没有结账。这意味着您还没有签出任何本地分支机构。您的第一个仓库可能具有非共享本地分支(例如主题或功能分支)。如果是这样,那些在使用--all时会影响日志输出。

Stashes也存储在refs/下。与第二个仓库的日志相比,第一个仓库中的任何仓储都会影响git log。

答案 2 :(得分:0)

git fetch和git pull略有不同。

Git fetch用于从远程获取最新信息,而Git pull用于获取远程内容并将其与您的分支合并。

Pull = fetch + Merge。

所以,正如你所说,fetch只会显示你的分支的日志,但git pull会在你的远程变化合并后显示完整的日志。

希望它能回答你的问题。