我git log
之后如何获得与git fetch
相同的结果?{/ 1}}
我已经克隆了两个相同的存储库。第一个只需git pull
,第二个就有clone
标志。一段时间后,我为第一个存储库执行了--bare
,为第二个存储库执行了git pull
。
如果我尝试检查git fetch
的存储库,我会得到不同的结果。
git log
答案 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会在你的远程变化合并后显示完整的日志。
希望它能回答你的问题。