我有一个工作副本目录,它的许多文件被标记为具有“打字机”状态。我遇到的问题是:
$ rm -rf sample-data/
$ git checkout -- sample-data/
$ git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
typechange: sample-data/stereo-frames/LEFT_stereo-test0000.png
typechange: sample-data/stereo-frames/LEFT_stereo-test0001.png
typechange: sample-data/stereo-frames/LEFT_stereo-test0002.png
typechange: sample-data/stereo-frames/LEFT_stereo-test0003.png
typechange: sample-data/stereo-frames/LEFT_stereo-test0004.png
typechange: sample-data/stereo-frames/LEFT_stereo-test0005.png
.... etc. 所讨论的文件都应该是符号。如果我一个接一个地去做
git checkout -- sample-data/stereo-frames/LEFT_stereo-test0005.png例如,该文件是固定的。然而,有更多的文件比我在这里列出的。
为什么我必须手动对每个文件执行此操作?怎么了?远程Git在Linux机器上,我正试图在我的OS机器上克隆它。
发布于 2014-06-05 23:57:51
如chat logs between myself and Rich所示,里奇在Linux机器上有一个远程Git,其中包含如下所示的符号链接(信息被截断以突出显示重要内容):
$ ls -l
lrwxrwxrwx Left_stereo-test0000.png -> left_stereo-test0000.png
-rw-rw-r-- left_stereo-test0000.png请注意,符号链接与链接到的实际文件共享相同的名称,但在情况下则有所不同。在Linux系统上,这很好,因为它使用区分大小写的文件系统。
但是,OS使用case-insensitive文件系统(就像Windows一样)。我的猜测是,当Rich将Git克隆到他的OS机器上时,它检查出它所引用的符号链接或文件,然后检查另一个文件覆盖了前一个文件(或类似的文件),因为就OS而言,是同一个文件。
As Rich explained,为了避免OS上不区分大小写的名称冲突,他重新命名了这些文件,问题就解决了。
发布于 2014-06-05 18:46:54
@Cup蛋糕解决了我的问题。问题是OS达尔文所使用的不区分大小写的文件系统。重命名文件以避免名称不敏感的冲突修复了消息.
https://stackoverflow.com/questions/24027471
复制相似问题