git repo损坏,带有包含电子邮件地址的对象目录

Drootang

我的上游仓库是运行“ git version 2.11.0(Apple Git-81)”的macOS 10.12.6计算机上的裸仓库。

本地存储库位于运行git 2.13.0的RHEL6.9计算机上

我使用ssh连接上游。

git fsck 在上游仓库中显示:

Checking object directories: 100% (256/256), done.
Checking objects: 100% (1230/1230), done.
broken link from    tree 84a63258fd5215774eba75972a9a69bef72b3d8d
              to    blob e56d3dd863e5571c0ff68a033fa992e4a98688d0
missing blob e56d3dd863e5571c0ff68a033fa992e4a98688d0

进一步的挖掘表明它./objects/e5/为空,但是令人惊讶的是,存在一个./objects/e5 ([email protected])/包含名为的文件的目录6d3dd863e5571c0ff68a033fa992e4a98688d0

是什么原因造成的?这不是仓库第一次被破坏。

拉瑟诉卡尔森

在评论中讨论完问题后,答案出乎我的意料,您将存储库放在映射到同步工具(例如DropBox,Google Drive或类似工具)的文件夹中。

这些工具需要一种处理冲突的方法,在同步之前,可以同时编辑文件夹和/或文件的多个同步副本。

他们通常通过重命名一个或两个文件并添加使它与也已编辑的其他副本区分开来的方式来做到这一点。一种典型的方法是附加文件副本所在的计算机的名称。

如您所知,“ Box Sync 4”通过附加您的帐户电子邮件地址来处理此问题,从链接到文档中可以明显看出

通常,如果Box网站上存在与在相同文件夹位置本地创建的项目同名的现有项目,则您将在Box Sync中看到电子邮件附加的重复项。Box Sync将重命名较新的文件或文件夹,并添加用户的电子邮件地址([email protected]),以防止两个项目之间发生冲突。

由于它是一个已重命名的文件夹,所以我猜发生了以下情况:

  1. 在一个这样的链接副本上,e5添加了一个名为的文件夹,其中包含文件
  2. 然后,此更改已同步到云
  3. 在云更改可以向下同步到链接副本之前,您添加了e5自己文件夹
  4. 当同步出现问题时,不是保留一个文件夹,而是只是将两个文件夹中的所有文件都放在一个文件夹中,而是执行了冲突消歧,而是重命名了本地文件夹。

我将重申我在评论中所说的。除非满足以下条件,否则切勿使用文件夹同步工具(例如DropBox,Google Drive,OneDrive,Box Sync 4(感谢您将其他名称添加到我的列表中))来同步DVCS存储库。

您在任何地方都只有一个文件的本地副本,基本上在一台计算机上和在云中都有文件的两个副本。

这样做的原因是,如果您提交两个不同的此类链接副本,那么在同步赶上之前,您就有损坏存储库的风险。诚然,这种损坏通常并不太难修复,但是我已经看到一些例子,其中所有的地狱也都崩溃了。

如果需要备份,请考虑将远程添加到您的存储库之一,并自动推送到由DVCS感知的云主机托管的云中的存储库。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

“ git log”中的电子邮件地址错误

在Git中更改电子邮件地址

Xcode 7 Git设置失败:无法自动检测电子邮件地址

git:在.gitconfig中设置任何人的电子邮件地址

使git要求Kleopatra解锁特定电子邮件地址的GPG密钥

如何在Git提交链上查看贡献者的电子邮件地址?

Git提交电子邮件地址需要什么格式?

git:致命无法自动检测电子邮件地址

强制Git用户在工作副本中设置电子邮件地址

如何禁用Git自动检测电子邮件地址?

如果未在回购配置中设置,如何强制git提示我输入要使用的电子邮件地址?

如何防止在gitconfig文件中自动插入您的Git用户名和电子邮件地址?

从自己的电子邮件地址拒绝带有spamassassin的伪造电子邮件

从Git转换为SVN时,如何在提交历史记录中重写电子邮件地址,开发人员的姓名?

使用 Windows 命令提示符在 Git 中设置用户名和电子邮件地址时出错

解析完整的电子邮件地址包含的名称

匹配电子邮件地址(如果包含点号)

git如何知道我的电子邮件?

使User.Identity包含访问令牌有效负载中的电子邮件地址

解析带有'['字符的电子邮件地址标题时,javax.mail错误

从错误的电子邮件地址发送带有AutodiscoverUrl的ExchangeService

无法使用gmail发送到带有“加号”字符的电子邮件地址

获取 UIKit - 附加带有电子邮件地址的表单

ElasticSearch电子邮件地址,带有特殊字符,例如@

使用带有awk / sed的姓氏建立电子邮件地址

从收件人对象获取电子邮件地址

Safari会自动填充具有占位符属性的任何字段,其中包含带有用户电子邮件地址的单词“ email”

如何检查有效的电子邮件地址?

有效电子邮件地址的DataAnnotations

TOP 榜单

热门标签

归档