git status在Git存储库中运行,我得到:
Changes not staged for commit:
(use "git add/rm <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
deleted: path/to/file1.sql
deleted: path/to/file2.sql
deleted: path/to/file3.sql
Untracked files:
(use "git add <file>..." to include in what will be committed)
path/to/file1.sql
path/to/file2.sql
path/to/file3.sql
no changes added to commit (use "git add" and/or "git commit -a")
Run Code Online (Sandbox Code Playgroud)
其他每个文件都没问题.我已经尝试过重置,结账等,并且还要再次克隆存储库(我们使用集中式服务器).没有什么能解决这个问题,但仅限于使用Windows的特定用户.该问题不会出现在Linux上.
附加信息:
git diff 显示没有输出.core.autocrlf为false.这实际上是一件非常简单的事情:文件已提交,文件名末尾有一个空格。显然 Windows 无法处理这个问题,并且每次都会自动删除空间(克隆后,结帐后等)。
所以 Git 显示了正确的信息,文件"path/to/file1.sql "已被删除,文件"path/to/file1.sql"是新的(抱歉,这在问题中没有显示,现在我更正了它以显示示例 Git 输出中的空间)。
一开始我没有注意到这一点,因为我只是在 Linux 上看到ls该目录的内容/path/to/在git status那里正常后编辑了该目录的内容,并尝试在 Windows 中调试所有内容(不可能,除非您通过选择正确的部分以某种方式注意到该空间) Git 输出)。由于Vampire的评论,当我对文件名(在 Linux 上)进行额外检查时,我得到了奇怪的结果
ls /path/to/file1.sql
ls: file not found
Run Code Online (Sandbox Code Playgroud)
按 TAB 并看到"/path/to/file1.sql\ "我想通了。我认为这个问题很微不足道,但由于不会每天都发生有人提交名称末尾有空格的文件,我认为可能需要一段时间才能确定 Git 没有真正的问题。
所以我现在要留下问题和答案,如果你不同意就投反对票,我会删除所有内容。
感谢所有在评论中提供帮助的人。