Git reflog和执行全新克隆?

5
如果您想跟踪git仓库中发生的更改,您可以使用https://git-scm.com/docs/git-reflog,例如如果一个分支由于意外被本地/远程删除,可以使用该命令恢复它。
但是据我了解,git reflog只有在本地仓库上下文中才有意义。意味着每次您完全克隆时,所有分支的git reflog都将为空。这正确吗?
2个回答

3

是的,这是正确的。如果您克隆一个项目,那么引用日志是空的,第一条记录可能会是:

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

参考日志,或称“reflogs”,记录了本地存储库中分支和其他引用的指针何时更新。 https://git-scm.com/docs/git-reflog

1
问题在于第一个条目:请确保使用 Git 2.28+。
在 Git 2.28(2020 年第三季度)之前,"git clone" 和 "git fetch" 的 reflog 条目未对它们操作的 URL 进行匿名化处理。
请参见 commit 46da295(由 Johannes Schindelin (dscho) 于 2020 年 6 月 4 日提交)。
(由 Junio C Hamano -- gitster -- 于 2020 年 6 月 18 日合并至 commit 524caf8

clone/fetch: 在 reflog 中匿名化 URL

签署者:Johannes Schindelin

即使我们强烈反对在通过命令行传递的 URL 中放置凭据,但确实支持这样做,用户也确实这样做。

让我们在将它们写入 reflog 之前清洗它们。

因此,如果您使用 git clone https://me:MyGitHubPassword@github.com/xxxx 克隆,则第一个条目将是:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接