3 回答
TA贡献1884条经验 获得超4个赞
您处于不区分大小写的环境中。此外,如Git所理解-A的mv那样,添加no 将不会照顾到remove的一面。警告!执行此操作时,请确保没有其他更改或未跟踪的文件,否则它们将作为更改的一部分得到落实! git stash -u首先,执行此操作,然后再执行git stash pop。继续:要解决此问题,请执行以下操作:
mv foo foo2
git add -A
git commit -m "renaming"
mv foo2 FOO
git add -A
git commit --amend -m "renamed foo to FOO"
这是更改工作目录,提交然后折叠2个提交的引出方式。您可以只在索引中移动文件,但是对于git的新手来说,它对发生的事情可能不够明确。较短的版本是
git mv foo foo2
git mv foo2 FOO
git commit -m "changed case of dir"
如其中一项注释中所建议,您还可以进行交互式重新编排(git rebase -i HEAD~5如果在5次提交之前引入了错误的案例)来修复该案例,而不会在历史记录中的任何位置出现错误的案例。如果要执行此操作,则必须小心,因为从那时起的提交哈希值将有所不同,其他人将不得不根据分支的最近历史重新建立或重新合并其工作。
TA贡献1860条经验 获得超8个赞
您要将选项设置core.ignorecase为false,这将使Git注意本机不支持它的文件系统的大小写。要在您的仓库中启用:
$ git config core.ignorecase false
然后,您可以使用来重命名该文件,git mv它将按预期工作。
TA贡献1859条经验 获得超6个赞
我能够通过使用临时文件名使用git 1.7.7解决此问题:
$ git mv improper_Case improve_case2
$ git mv improve_case2 improve_case
$ git commit -m "<your message>"
- 3 回答
- 0 关注
- 707 浏览
添加回答
举报