为什么显示“更新Git索引失败”
我正在使用Windows。 当登台文件时,我得到这个错误。
Updating the Git index failed. A rescan will be automatically started to resynchronize git-gui. 
接着是从LF到CRLF转换的文件列表
在使用Git使用跨平台对CRLF / LF问题进行大量的阅读后,我或多或less地理解了这个问题,并且试图确定哪个autocrlf设置最适合我,但我不明白为什么Git会说更新索引失败。 我的理解是,它已经转换了EOF,所以有什么问题,为什么它告诉我,更新索引失败了。 我是否需要修复某些内容(除了select适当的autocrlf设置)或者我可以继续
然后我有两个select继续和解锁索引,这是什么意思,什么是最好的行动。
 git config --global core.autocrlf false 
一直是我的build议(见“ Windows(msysgit)上的Git 1.6.4 beta – Unix或DOS行终止 ”)。
然而,就你而言,你可以“继续”,但是这个警告提到某些文件的转换可能是不可逆的:
 core.safecrlf 
如果为true,则使git检查在行结束转换处于活动状态时转换CRLF是否可逆。 Git会validation命令是直接还是间接地修改工作树中的文件。 例如,提交文件,然后检出相同的文件,应该在工作树中生成原始文件。 如果
core.autocrlf的当前设置不是这种情况,那么git会拒绝这个文件。
variables可以设置为“警告”,在这种情况下,git只会警告不可逆的转换,但继续操作。
 如果您不希望看到此警告,则可以将core.safecrlf设置为false 。 
 你也可以通过git gui的工具菜单来保存你的文件,并且用这个gitconfiguration文件为这些工具添加一些选项。 
 兴趣是,对于每个工具,你可以添加: 
 guitool.<name>.norescan 
工具完成执行后,不要重新扫描工作目录以进行更改。
请您详细解释一下解锁索引
 你可以在index.tcl git-gui脚本中看到这个消息:它删除了git-gui在操作索引时创build的index.lock文件。 
 你可以在“lockfile API”文档页面看到更多的内容 : 
相互排斥 。
当我们写出一个新的索引文件时,首先我们创build一个新文件$GIT_DIR/index.lock,将新内容写入它,并将其重命名为最终目标$GIT_DIR/index。
我们尝试使用O_EXCL创build$GIT_DIR/index.lock文件,这样当其他人已经尝试更新索引文件时,我们可以注意到并失败。
 我也遇到了这个问题,甚至我的core.autocrlf设置已经是false , core.safecrlf未设置。 我怀疑罪魁祸首是configuration设置diff.astextplain.textconv 。 
 当我运行git config --list ,在输出中显示了以下行: 
 diff.astextplain.textconv=astextplain 
我不认为这个设置实际上与警告/错误有关,但是它激励我研究可能正在完成的文本转换。 在网上和我的回购一小段spelunking后,我发现我的回购的.gitattributes文件中的以下行:
 * text=auto 
[我可能从GitHub获得了.gitattributes文件。]
考虑到只有上面这一行没有评论,而且进一步处理“自动化”的行结束转换一直是一个头痛的问题,所以我select从我的回购中删除该文件。 这样做后,暂存相同的文件不再提示我“更新Git索引失败”的警告/错误。