致命:无法更新引用“head”:无法附加到“.git/logs/head”:参数无效

Jas*_*r B 4 git github onedrive

当尝试将项目提交到 github 时,提交失败并出现错误: fatal: cannot update the ref 'head': unable to append to '.git/logs/head': invalid argument。这是在正确初始化目录并成功进行首次推送之后。

修复的重要部分:我正在使用OneDrive将文件保存在

Von*_*onC 7

另一个解决方案:

  • 不要克隆OneDrive 同步文件夹中的任何内容(如此处所示)
  • 按预期从正常的常规文件夹中推/拉
  • 随时创建 a git bundle:它会生成一个文件(代表完整的存储库内容),另请参阅此处

您可以将一个文件存储在备份驱动器中。


bk2*_*204 5

您永远不应该使用 OneDrive 等云同步服务来存储 Git 存储库。造成这种情况的原因有几个:

  • 首先,云同步服务逐个文件同步,而 Git 依赖于处于单一状态的整个存储库,因此使用这些服务可能会因使存储库处于不一致状态而导致损坏。众所周知,人们这样做会丢失数据。
  • Git 需要一个提供 POSIX 语义的文件系统,包括原子追加到文件的能力。这对于普通的 Windows 文件系统来说通常是可能的,但许多云同步服务使用不提供这些功能的自定义文件系统,因此 Git 无法使用它们。

在这种情况下,您会看到后一个问题。

跨机器同步存储库的最佳方法就是推送和拉取到远程位置,例如 GitHub。您还可以使用git bundle您喜欢的任何方法来传输捆绑文件。您的最后一个选择是使用(最好使用 SSH)在计算机之间进行同步rsync -a --delete-after,但您必须确保在执行此操作时存储库完全空闲,这也意味着诸如git gc编辑器集成之类的事情不会运行。如果不是,你最终可能会陷入腐败。