git fetch 后的 Git 日志

Ant*_*ton 3 git git-log

我怎样才能得到与 aftergit log相同的结果?git fetchgit pull

我克隆了两个相同的存储库。仅clone适用于第一个,--bare第二个带有标志。一段时间后,我执行了git pull第一个存储库和git fetch第二个存储库。

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

cd ~/first
git pull
git log --all --oneline | wc -l
21962

cd ~/second.git
# second
git fetch
git log FETCH_HEAD --all --oneline | wc -l
21903
Run Code Online (Sandbox Code Playgroud)

Dan*_*owe 5

git-log联机帮助页:

--all
    Pretend as if all the refs in refs/ are listed on the command line as <commit>.
Run Code Online (Sandbox Code Playgroud)

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

如果您在两个存储库上都执行了 git fetch(并且 git pull 意味着 git fetch),那么其中一些内容应该在两个存储库之间保持一致:特别是远程分支和带注释的标签。

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

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

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