Git提交文件,但它不在repo中

时间:2015-11-23 11:30:18

标签: git

我上传并将文件提交到本地git存储库,这似乎正常工作。

然而,在检查存储库时,它似乎不存在。摘自我的命令会话:

D:\myproject>git log -1 --stat
...
 myfile.h        |    27 +-
...
30 files changed, 18501 insertions(+), 15303 deletions(-)

D:\myproject>git ls-files myfile.h

D:\myproject>

此文件应该在多次提交时已存在于存储库中很长时间了 显然我担心提交可能也会因其他文件而无声地失败。

如何确保我的更改都正确提交?

1 个答案:

答案 0 :(得分:0)

该文件原来存在于存储库中,但路径有不同的情况。如,

存储库:ParentFolder/myfile.h

工作目录:parentfolder/myfile.h

虽然Windows将这些路径视为相同的路径,但即使ignoreCase选项设置为true,git也不会(ignoreCase显然仅影响暂存区域而不是git ls-files,{{ 1}}等等。

修复是编写一个脚本,将git diff(gnu / msys找不到Windows找到!)的输出与find进行比较,以查找以这种方式受影响的所有文件。受影响的文件是存在于repo中的文件,它们在工作树中具有不区分大小写但不区分大小写的匹配项。然后对于每一个,删除并重新添加Git,小心不要删除本地副本:

git ls-files

并提交。