git是否记录了分支头的历史?

Jak*_*ndy 11 git branch refs

Git分支头和标签是提交的指针,这些指针可以隐式地(在a之后commit)或显式地(在a之后branch -m)移动.

Git是否记录了这些指针状态的历史?

我至少看到两个原因:

  • 两天前看到回购的状态,包括分支头指向的位置.
  • 确保没有历史记录丢失,因为某人以某些提交无法访问的方式移动了分支头.

请注意,Mercurial中可以使用上述内容,因为它在每次提交中都存储了分支名称.

所以再次,在Git中是.git/refs /版本控制的内容,还是有办法让它们如此?

(我正在尝试为团队决定Mercurial或Git,我想确保对共享仓库的所有更改,包括refs,都记录下来.我不关心开发人员对他们的私人回购做什么.)

谢谢.

Wyz*_*a-- 9

它们没有版本化,但reflog功能保留了可用于撤消错误的本地历史记录.但是,如果有人"倒退"一个分支头从最后丢弃一些提交,当另一个开发人员试图更新他们的那个分支的结账时,它会变得很明显,因为Git将拒绝在本地进行更改,除非--force使用.您可以轻松地将提交返回到共享存储库.