在我部分提交的第一个名为_Electronics
,开始时使用的是大写字母,然后我将其更改为_electronics
。
在提交了新名称后,cygwin下的Git忽略了大小写,因此我手动更改了目标存储库中的名称。
现在它有时会将提交的_electronics
部分更改为_Electronics
。
我做错了什么?
在我部分提交的第一个名为_Electronics
,开始时使用的是大写字母,然后我将其更改为_electronics
。
在提交了新名称后,cygwin下的Git忽略了大小写,因此我手动更改了目标存储库中的名称。
现在它有时会将提交的_electronics
部分更改为_Electronics
。
我做错了什么?
这将取决于配置值core.ignorecase
,在区分大小写的文件系统中设置为false,在Windows上的msysgit中设置为true。
core.ignorecase
如果为true,则此选项启用各种解决方案,以使git能够在不区分大小写的文件系统(如FAT)上更好地工作。例如,如果目录中列出了"makefile",而git希望找到的是"Makefile",git将假定它实际上是相同的文件,并继续将其记为"Makefile"。
默认值为false,但在创建存储库时,git-clone(1)或git-init(1)将探测并设置适当的core.ignorecase true。
有关更多详细信息,请参阅更改Git中文件名大写的情况中的回复。
在大小写不敏感的系统上,它将被视为两个不同的事物,但会导致问题。如果是这种情况,请确保您通过制表符自动完成任何路径或文件名。此外,要仅更改大小写的名称,请执行以下操作:
mv file.txt temp.txt
git add -A
git commit -m "renaming..."
mv temp.txt File.txt
git add -A
git commit --amend -m "Renamed file.txt to File.txt"
这是一种明确地进行更改、提交和折叠提交的方法。更短的方法是同时操纵索引和工作文件夹:
git mv file.txt temp.txt
git mv temp.txt File.txt
git commit -m "Renamed file.txt to File.txt"
这也涉及到调整目录名称:git mv and only change case of directory
git mv file.txt File.txt
命令来重命名文件。不确定这是否是 Git 的新功能。 - Phil这要简单得多:
git mv Electronics electronics -f
git commit -m "That was easy!"
mv -f
可以用于文件。 - Edward Thomsongit config --system core.ignorecase false
在我的情况下,我有两个文件夹tests
和Tests
,它们在Github中显示为两个单独的文件夹,但在Windows中是一个单独的Tests
文件夹。我的目标是将它们合并到tests
中。
我采用了以下方法:
temp
Tests
复制到temp
Tests
git rm Tests -r
temp
重命名为tests
我已经尝试解决这个问题,并且在Windows10上取得了成功。
假设在Bitbucket上有两个文件夹TEST和test,但是当我在磁盘上克隆仓库时,只创建了TEST文件夹,而我希望将test作为包含所有文件的单个文件夹保存在git中。
我需要在命令行上执行以下命令: git mv TEST test1 -f git mv text1 test -f git commit -m "renaming..." git push
现在你会看到在Bitbucket上文件夹层次结构已经被纠正。