Answers:
您可能正在使用不区分大小写(但保留大小写)的HFS +。我通常这样处理:
$ git mv somename tmpname
$ git mv tmpname SomeName
git push origin master
。如果git拒绝更新遥控器,则可能需要添加一个虚拟文件(例如touch stam
)并进行推送。随后删除stam并再次推送。
您可以通过运行告诉git考虑到这种情况
git config core.ignorecase false
发生这种情况是因为Mac OS X实现了旨在保护您的大小写和不区分大小写的功能。
尽管另一个答案中的双重重命名建议将起作用,但我建议使用“ --force”以获得最佳实践结果:
$ git mv --force somename SomeName
注意:如果您尝试不使用force选项,git会像这样对您发声:
$ git mv somename SomeName
$ fatal: destination exists, source=somename, destination=SomeName
在上面的示例中,git命令失败,并且文件系统或git的索引中没有文件被更改。
fatal: not under version control
。
git
命令仅在具有GIT存储库的目录中起作用。
尝试将.gitconfig文件中的git config选项core.ignorecase更改为false。
git config core.ignorecase false
以下步骤帮助我解决了该问题:
将文件夹重命名为temp
:
mv Folder temp // It will rename your Folder to temp
阶段和提交:
git add .
git commit -m "Temp"
将temp
文件夹重命名为您的选择:
mv temp folder // It will rename temp folder to the name of your choice(folder)
git add .
git commit -m "Folder Fixed"
完成-现在可以推送了。
如果你这样做git mv AAA aaa
或者git mv -f AAA aaa
,它不会工作,你将有错误fatal: renaming 'AAA' failed: Invalid argument
。
因为AAA
和aaa
是不区分大小写的文件系统上的ONE SAME文件夹/文件,所以移动AAA
到aaa
表示移动AAA
为aaa/AAA
。
所以你应该做
git mv AAA aaa.1
git mv aaa.1 aaa
希望对您有帮助。
这些解决方案都不适合我。SourceTree总是使用与我想要的情况不同的情况创建我的分支。所以我如何解决的是:
1-在finder上查看您的git文件。您可以通过在终端上键入以下内容来做到这一点:
- `defaults write com.apple.finder AppleShowAllFiles TRUE`
- `killall Finder`
2-重新启动查找程序并转到您的项目目录
3-现在只需更改文件夹名称,例如,从Feature到feature。然后你去。
您也可以不使用GIT命令手动进行此操作。在.git
文件夹内,只需删除您想要的名称的文件夹即可SomeName
。然后将该文件夹重命名somename
为SomeName
。更多详细信息,请参见:如何将文件夹名称设置为大写并将git转换为小写