GitHub for Windows和悬挂提交/ blob

时间:2014-05-11 17:02:05

标签: git github

当我使用GitHub For Windows时,我在我的仓库中积累了悬空提交和悬空blob。这是正常的预期行为吗? (我怀疑答案是肯定的。)

例如,使用GitHub for Windows程序我创建一个新的repo,提交它在创建repo时免费提供给我的2个文件(.gitattributes和.gitignore),然后将repo“发布”到GitHub 。所有的魔法,都很好,都很容易。但git fsck告诉我,我有一个悬挂的提交:

C:\Users\Robert\Documents\GitHub\test1 [master]> git fsck
Checking object directories: 100% (256/256), done.
dangling commit e67c154ce480637b51f5afb692688e16af1a7720

好的,让我们向git询问有关悬空提交的一些细节:

C:\Users\Robert\Documents\GitHub\test1 [master]> git log --oneline e67c
e67c154 Auto-generated backup commit: 05/11/2014 16:50:05 +00:00

它似乎是某种“自动生成的备份提交”(感谢GitHub给我一个体面的评论)。我用这种方式看了其他悬挂的提交,它们看起来更像是一样。

我可以使用git show来查看悬空blob的内容,这些内容似乎都是我认出的文件。

所以,回到最初的问题:这是否(累积悬空提交和blob)预期的行为?

1 个答案:

答案 0 :(得分:2)

  

它似乎是某种"自动生成的备份提交"

这是一个针对Windows hack的GitHub(或多或少)自动保存您的工作目录。当git newcomer搞砸了他的回购时,这个功能极大地帮助了他们的支持团队。由于这些备份提交,支持团队能够“恢复”#34;他们未经承诺的工作。

  

正在积累悬空提交和blob预期行为吗?

是的,那是预期的git行为。每次取消暂存文件或部分更新文件时,都会导致悬空斑点。 每次你重新分支一个分支,或重写你的历史,这都会导致悬空提交。

这是git"默认安全"的原因之一。一切都是持久的,通过reflog(或git fsck的输出),人们可以访问之前的状态/快照。

这些悬空对象将根据您的配置设置(请参阅 git gc 文档)或下次git gc命令自动清除。< / p>