更改时不会反映重命名

时间:2014-03-19 09:49:54

标签: git

我在Windows上使用git。我有源存储库和两个具有相同文件结构的本地存储库。在firlst本地存储库中,我通过使用`mv git Folder \ file.txt文件夹\ file.txt'重命名来更改文件夹的大小写。并提交重命名。然后推到原点。在第二个本地存储库中,我提取了更改,但案例没有反映出来。当我看到该文件的日志时,我可以看到它已重命名。这些变化没有反映出来的原因是什么?有趣的是,对于我重命名的其他一些文件夹,反映了这些更改。

1 个答案:

答案 0 :(得分:1)

我不确定它会做什么但是尝试

  1. 使用HEAD

    处的内容更新索引
    git read-tree -i HEAD
    
  2. 删除应重命名的文件和/或目录:

    del blah
    rmdir foo
    
  3. 强制从索引版本中创建工作树文件:

    git checkout-index -a -f
    
  4. 将来请注意,Git不幸与您的情况不符。这是可以理解的:在Windows上,NTFS在不区分大小写的情况下不区分大小写,并且FAT既不区分大小写,也不保留大小写。 IOW,似乎只有没有理智的行为,Gi​​t可以在这个问题上表现出来:一方面它应该在提交树和'foo / bar中处理'FoO / bAr.tXt'。文件系统上的txt'表示同一个文件,另一方面它们应该表示不同的东西?它不会起作用,我能设想的唯一解决方案是一些特定于Windows的黑客,例如git checkout-index --fix-work-tree-name-casing,它实际上会重命名工作树实体以匹配索引。

    建议elsewhere

    更新,可以使用git reset --mixed HEAD代替git read-tree