我正在Windows系统上使用git,并且在我的仓库中有一个文件,例如 "foo.txt"。今天我想将此文件重命名为 "Foo.txt"(大写字母)。按照这个SO问题的建议,我使用了 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正确地识别了文件实际上已被重命名(没有删除一个文件然后添加另一个)。那么当我尝试切换分支时到底发生了什么?
谢谢!
core.ignore
设置为false
,提交后也无法切换吗? - VonC