我在 Windows 上使用 git,我的仓库中有一个文件,可以说“foo.txt”。今天我想把这个文件重命名为“Foo.txt”(大写)。正如这个 SO question中所建议的那样,我使用git mv -f foo.txt Foo.txt
了 ,它产生了预期的结果。我继续将更改提交到我的仓库。
编辑:我希望这是一个永久性更改,并且仍然能够签出在此更改之前的提交。
但是,在那之后我在尝试切换分支时遇到了错误:
# I'm on branch1
git checkout branch2
Aborting
error: The following untracked working tree files would be overwritten by checkout:
Foo.txt
Please move or remove them before you can switch branches.
经过一番摸索,我发现我的.git/config
文件具有以下设置:
[core]
ignorecase=false
将此更改为 true 似乎可以解决问题,并允许我正常在分支之间进行更改。
所以关于这个,我想知道:
- 此设置是否有任何不利影响?它应该在 Windows 上总是正确的吗?如果我正在与其他开发人员一起工作并且他们没有为此设置相同的值怎么办?
- 是否有另一种方法可以重命名文件而无需更改此设置?
- 为什么会发生这种情况?当我提交更改时,git 正确地识别出该文件实际上已重命名(没有删除一个文件然后添加另一个文件)。那么当我尝试切换分支时到底发生了什么?
谢谢!