2015-11-13 80 views
7

我正在使用git进行版本控制的共享项目。我在Windows上,而我的合作伙伴在Unix上。Git pull无效的Windows文件名

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

  1. 其认为对于这些“删除”的文件路径无效,我不能使用git reset --hard

  2. 有没有办法从我的提交中排除这些文件?我试过将<file1>加入我的.git/info/exclude,但那没用。

+1

这些文件是如何出现在您的提交?你做过'git commit -a'或'git add .'吗?你想编辑你的提交,或者你想从索引中删除这些文件? – Paul

+0

我个人要求使用'git mv'来更改名称,然后您应该可以执行强制拉取,但这是个人偏好。这是一个简单的解决方案,因为它可以让你编辑这些文件,而不是无法对它们做任何事情。 –

+0

或者,自己动手:使用Cygwin安装程序安装'git'软件包(及其任何必需的依赖项),导航到Cygwin终端的checkout目录(例如'cd/cygdrive/c/Users/Nryan6/projects/FooBar'),[再次拉(可能覆盖本地更改;点击更多信息)](http://stackoverflow.com/a/8888015/539810),'git mv \ .txt file1.txt'对于任何其他文件),并提交和推送。 Cygwin会将U + 003C('<')和U + 003E('>')转换为Windows允许的U + F03C和U + F03E,但Cygwin会将它们视为正常的'<' and '>'字符。 –

回答

1

如果文件已被跟踪,忽略不起作用。

使用Sparse checkout跳过这些文件。

+1

有没有人得到这个工作? – mvndaai