今天我发现Git有一个奇怪的问题。在我们的三个构建代理计算机上,我们在git init
:
致命:无法将'C:\ Program Files(x86)\ Git / share / git-core / templates / hooks / post-commit.sample'复制到'C:/MyRepo/.git/hooks/post-commit .sample':没有这样的文件或目录
我检查程序文件中的文件是否存在,所有文件权限都是正确的。
然后我从 C:\ Program Files(x86)\ Git / share / git-core / templates / hooks 文件夹中删除了所有示例文件,并在git init
之后出现了另一个错误
错误:无法打开C:/MyRepo/.git/HEAD.lock进行编写
我尝试重新安装git,但这没有帮助。
但是在重新启动机器后问题已经消失。
当我重启其他两台机器时,问题也没有任何其他动作。
所以问题是为什么会突然发生这种情况以及将来如何防止这种情况发生?
UPD:还有一个症状。也许这有助于确定问题。
我试图在有问题的驱动器上运行 chkdsk ,我得到了
The type of the filesystem is RAW.
CHKDSK is not available for RAW drives.
重新启动后,它再次显示为NTFS ...
答案 0 :(得分:2)
消息"文件系统的类型是RAW。"令人担忧,并且可能表示某种类型的磁盘故障,如" CHKDSK: "RAW filesystem" message"
中所述有时,卷会以RAW的方式失败。
在大多数情况下,故障将与突然重启(每次电源故障或STOP错误)相关联。
可能有多种原因:分区表,LDM数据库或卷引导扇区损坏,或者(在NTFS卷上)当MFT和MFT镜像中的某些记录损坏而不易识别时。
您可以尝试使用 described here 修复MTF(TestDisk),但您可以先尝试将您的回购放在另一个分区/磁盘上,然后查看是否你的构建代理行为正确。
另见" CHKDSK is not available for RAW drives"或者" On a failing hard drive, I am able to view data but unable to copy it - why?",用于类似的描述。
与this question一样,确保之前没有设置环境变量GIT_DIR,构建代理(Jenkins?Hudson?TeamCity?)在执行git init
时会有所提升
在git init之前系统地取消设置GIT_DIR
将确保它尝试初始化它应该在的地方。