如何合并 Windows 中两个大小写不同的 git 目录?
How can I consolidate two case-different git directories in Windows?
在最近的代码清理中,我设法将一些文件移动到一个与现有目录不同的目录中。
签出存储库后,我看到所有文件都以大写版本签出。但是,如果我现在尝试重命名小写目录中的其中一个文件,我将无法这样做,因为 TortoiseGit 抱怨该文件不存在。
如何将小写目录中的所有文件移动到大写目录以更正问题?
编辑 - 问题的快速说明...
我的回购看起来像这样:
\software
\unit_tests
\file1.h
\file1.cpp
\UNIT_TESTS
\file2.h
\file2.cpp
在 Windows 中,我在检查存储库时看到了这个:
\software
\UNIT_TESTS
\file1.h
\file1.cpp
\file2.h
\file2.cpp
如果我现在尝试将 file1.h
移动到其他地方,我会收到一条错误消息,指出它不受版本控制。
If I now try and move file1.h somewhere else I get an error stating that it's not under version control.
在使用 Git 命令时,您必须确保使用正确的大小写(即 Git 知道的大小写)。虽然 Windows 文件系统不区分大小写,但 Git 不区分大小写,因此您应该在那里使用正确的路径。
因此,虽然 Windows 看到同一目录中的文件,但您仍有以下路径为 Git 所知:
software\unit_tests\file1.h
software\unit_tests\file1.cpp
software\UNIT_TESTS\file2.h
software\UNIT_TESTS\file2.cpp
因此,为了移动这些文件,您必须准确使用这些路径。你可能想在两者之间使用一个临时位置,这样 Windows 将在你在 Git 中执行移动时正确处理它,例如:
git mv software\unit_tests\file1.h software\unit_tests2\file1.h
git mv software\unit_tests2\file1.h software\UNIT_TESTS\file1.h
或者,您也可以跳过物理移动,直接从 unit_tests
目录中删除文件并将它们添加到 UNIT_TESTS
中:
git rm --cached software\unit_tests\file1.h
git add software\UNIT_TESTS\file1.h
在最近的代码清理中,我设法将一些文件移动到一个与现有目录不同的目录中。
签出存储库后,我看到所有文件都以大写版本签出。但是,如果我现在尝试重命名小写目录中的其中一个文件,我将无法这样做,因为 TortoiseGit 抱怨该文件不存在。
如何将小写目录中的所有文件移动到大写目录以更正问题?
编辑 - 问题的快速说明...
我的回购看起来像这样:
\software
\unit_tests
\file1.h
\file1.cpp
\UNIT_TESTS
\file2.h
\file2.cpp
在 Windows 中,我在检查存储库时看到了这个:
\software
\UNIT_TESTS
\file1.h
\file1.cpp
\file2.h
\file2.cpp
如果我现在尝试将 file1.h
移动到其他地方,我会收到一条错误消息,指出它不受版本控制。
If I now try and move file1.h somewhere else I get an error stating that it's not under version control.
在使用 Git 命令时,您必须确保使用正确的大小写(即 Git 知道的大小写)。虽然 Windows 文件系统不区分大小写,但 Git 不区分大小写,因此您应该在那里使用正确的路径。
因此,虽然 Windows 看到同一目录中的文件,但您仍有以下路径为 Git 所知:
software\unit_tests\file1.h
software\unit_tests\file1.cpp
software\UNIT_TESTS\file2.h
software\UNIT_TESTS\file2.cpp
因此,为了移动这些文件,您必须准确使用这些路径。你可能想在两者之间使用一个临时位置,这样 Windows 将在你在 Git 中执行移动时正确处理它,例如:
git mv software\unit_tests\file1.h software\unit_tests2\file1.h
git mv software\unit_tests2\file1.h software\UNIT_TESTS\file1.h
或者,您也可以跳过物理移动,直接从 unit_tests
目录中删除文件并将它们添加到 UNIT_TESTS
中:
git rm --cached software\unit_tests\file1.h
git add software\UNIT_TESTS\file1.h