gpt4 book ai didi

git fetch 后的 Git 日志

转载 作者:行者123 更新时间:2023-12-05 01:46:46 26 4
gpt4 key购买 nike

如何在 git fetch 之后获得与 git pull 相同的 git log 结果?

我已经克隆了两个相同的存储库。只需为第一个 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

最佳答案

来自 git-log 联机帮助页:

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

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

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

但是,其他的东西可能不一致。两者之间可能不共享非注释标签,并且本地分支可能不同。

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

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

关于git fetch 后的 Git 日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33525661/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com