如果您想跟踪git存储库中发生的更改,可以使用https://git-scm.com/docs/git-reflog,例如如果它是在本地/远程意外删除的话,还原一个分支?
但据我所知,git reflog只在本地存储库的上下文中有意义。这意味着每次执行完全新的克隆时,所有分支的git reflog都将为空。这是对的吗?
答案 0 :(得分:2)
是的,这是正确的。如果克隆项目,则reflog为空,第一个条目为例如:
fd7cb08 HEAD@{0}: clone: from https://github.com/xxxx
引用日志或" reflogs",记录在本地存储库中更新分支和其他引用的提示时。
答案 1 :(得分:0)
问题在于第一个条目:请确保使用Git 2.28 +。
在Git 2.28(2020年第三季度)之前,“ git clone
”和“ git fetch
”的引用日志条目并未使它们所使用的URL匿名。
请参见commit 46da295的Johannes Schindelin (dscho
)(2020年6月4日)。
(由Junio C Hamano -- gitster
--在commit 524caf8中合并,2020年6月18日)
clone/fetch
:匿名化reflog中的URL签名人:Johannes Schindelin
即使我们强烈建议不要将凭据放入通过命令行传递的URL中,也有 支持,而用户 do 可以这样做。
在将它们写入reflog之前先清理它们。
因此,如果您使用git clone https://me:MyGitHubPassword@github.com/xxxx
进行克隆,则第一个条目将是:
46da295 HEAD@{0}: clone: from https://github.com/xxxx