Git拉出无效的Windows文件名

时间:2015-11-13 21:33:50

标签: windows git filenames

我正在使用git进行版本控制的共享项目。当我的伴侣在Unix上时,我在Windows上。

我的合作伙伴已使用<file1>.txt命名了一些文件。当我尝试提取这些文件时,它们不被接受,因为<>是Windows的无效字符。这很好,我不需要触摸文件。但是,它们会被添加到我的提交中作为已删除。所以,如果我推,那么我将删除这些我不想做的文件。

  1. 我无法使用git reset --hard,因为它会为每个“已删除”文件找到无效路径。

  2. 有没有办法从我的提交中排除这些文件?我已尝试将<file1>添加到.git/info/exclude,但这不起作用。

2 个答案:

答案 0 :(得分:1)

您需要获得您的合作伙伴才能将名称更改为在Windows上也有效的名称。他们重命名它们后,我要做的是:

  1. 备份您在本地仅有的所有更改(未提交或已提交但未被推送)。
  2. 运行git reset --hard <commit>,其中<commit>是添加文件之前的任何提交。
  3. 运行git pull到最新版本(文件已重命名)。
  4. 从1恢复备份的更改。

然后应该获得较新的修订版本,其中未使用Windows非法方式将文件命名为Windows,并且操作系统不会从git下删除(或永远不会创建)这些文件:)

P.S。我知道这是一个老问题,但是我最近一直在遇到这个问题,因此希望我提出的解决方案也能对其他人有所帮助。

答案 1 :(得分:0)

如果已经跟踪文件,则忽略无效。

使用Sparse checkout跳过这些文件。