windows上的Git:Can';重命名文件后的t开关分支(仅更改大小写)
我在windows上使用git,我的repo中有一个文件,比如“foo.txt”。 今天我想把这个文件重命名为“Foo.txt”(大写)。正如中所建议的,我使用了git mv-f foo.txt foo.txt,这产生了所需的结果。我继续将变更提交我的回购协议。windows上的Git:Can';重命名文件后的t开关分支(仅更改大小写),git,rename,case-sensitive,file-rename,ignore-case,Git,Rename,Case Sensitive,File Rename,Ignore Case,我在windows上使用git,我的repo中有一个文件,比如“foo.txt”。 今天我想把这个文件重命名为“Foo.txt”(大写)。正如中所建议的,我使用了git mv-f foo.txt foo.txt,这产生了所需的结果。我继续将变更提交我的回购协议。 编辑:我希望这是一个永久性的更改,并且仍然能够在更改之前签出提交 但是,在此之后,我在尝试切换分支时遇到了一个错误: # I'm on branch1 git checkout branch2 Aborting error:
编辑:我希望这是一个永久性的更改,并且仍然能够在更改之前签出提交 但是,在此之后,我在尝试切换分支时遇到了一个错误:
# 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似乎可以解决问题,并允许我像往常一样在分支之间进行更改
关于这一点,我想知道:
核心设置为true
是允许签出继续的有效方法
但我宁愿,如在“”中一样:
git add
我刚刚修改的内容(在您的情况下,git mv
可能已经将重命名的文件添加到索引中)
git stash
,保存索引
git checkout-b另一个分支
:这应该可以工作,因为索引是干净的
git stash pop
,如果要恢复该新索引上的大小写更改
这意味着每次我想更改分支时都要删除该文件,从现在到永远。对吗?看起来有点不方便…你真的试过了吗?在我的情况下,它起了作用,但我不会声称我能完全再现你的情况是的,我做到了,至少假设我正确地理解了你。我用git重命名了文件,然后提交了更改。然后我删除了该文件(仅使用rm
),并使用git checkout.
将其还原。之后,更改分支时会出现相同的错误。好的,但我想提交重命名。问题是,如果我这样做,我就不能在那之后切换分支。@avivr您不能在提交之后切换,即使使用core。忽略设置为false
?不,就像我说的,我只能在分支设置为true时切换分支。此外,在我像你建议的那样隐藏了重命名之后,我在尝试弹出隐藏时遇到了相同的错误。所以这个藏品是“不可能”的,我不得不放弃它。@avivr对不起,我的意思是设置为真,真的。