我在windows上使用git,我的repo中有一个文件,让我们说“foo.txt”。
今天我想把这个文件重命名为“Foo.txt”(大写)。正如this 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似乎可以解决问题并允许我在正常分支之间进行更改。
关于这一点,我想知道:
谢谢!
答案 0 :(得分:2)
一种简单(但不优雅)的方法来解决这个问题而不必更改配置设置是删除文件并再次检查。在我的情况下,这允许我的更改分支正常。
编辑:正如Avivr所指出的那样,我提出的解决方法并没有解决问题永久。我仍然不会删除此答案,因为在某些情况下它可能有助于作为临时热修复。
答案 1 :(得分:2)
正如“Unresolvable Git error: The following untracked working tree files would be overwritten by checkout”中所述,将core.ignorecase
设置为true
是允许结帐的有效方式。
但我更喜欢像“GIT: The following untracked working tree files would be overwritten by checkout”一样:
git add
刚刚修改过的内容(在您的情况下,git mv
可能已将重命名的文件添加到索引中)git stash
,保存索引git checkout -b anotherBranch
:这应该可以使用,因为索引是干净的git stash pop
,如果您想恢复该新索引的大小写更改。