Git reflog并做一个新的克隆?

时间:2016-08-24 13:52:02

标签: git

如果您想跟踪git存储库中发生的更改,可以使用https://git-scm.com/docs/git-reflog,例如如果它是在本地/远程意外删除的话,还原一个分支?

但据我所知,git reflog只在本地存储库的上下文中有意义。这意味着每次执行完全新的克隆时,所有分支的git reflog都将为空。这是对的吗?

2 个答案:

答案 0 :(得分:2)

是的,这是正确的。如果克隆项目,则reflog为空,第一个条目为例如:

fd7cb08 HEAD@{0}: clone: from https://github.com/xxxx
  

引用日志或" reflogs",记录在本地存储库中更新分支和其他引用的提示时。

https://git-scm.com/docs/git-reflog

答案 1 :(得分:0)

问题在于第一个条目:请确保使用Git 2.28 +。

在Git 2.28(2020年第三季度)之前,“ git clone”和“ git fetch”的引用日志条目并未使它们所使用的URL匿名。

请参见commit 46da295Johannes 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