虽然我发现了类似的问题,但我没有找到问题的答案
当我尝试重命名目录从FOO到FOO通过git mv FOO FOO我得到
fatal: renaming 'FOO' failed: Invalid argument
好的。我试试gitmv FOO foo2 && gitmv foo2 FOO
但当我尝试通过git commit提交时。我得到
# On branch master
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# foo
nothing added to commit but untracked files present (use "git add" to track)
当我通过git添加目录时,添加foo没有任何变化,git提交。又给了我同样的信息。
我做错了什么?我认为我正在使用区分大小写的系统(OSX),为什么我不能简单地重命名目录?
我有一个相关的问题。
一个文件夹名为“Pro”(先创建的),另一个名为“Pro”(错误创建的)。在Mac中,这是同样的事情,但根据git不同。
$ git config core.ignorecase false
git配置将文件重命名到正确的文件夹(谢谢),并在“pro”中创建了幽灵文件(不!!)我不能添加鬼文件更改轨道,我不能签出其他分支,除非携带这些文件与我,我也不能以某种方式重置它。
相反,我做了
$ git rm -r --cached pro
$ git status // => pro files removed, new Pro files untracked
$ git add Pro
为了使它更加安全,我在一个单独的固定分支中完成了它,然后我合并回主分支
对于幽灵文件问题,有大师可以解释如何和为什么?
提前谢谢你。
这里有一个简单的方法。
确保您的工作目录为空。
暂时禁用git忽略大小写
git config core.ignorecase false
重命名任何目录(例如Folder => Folder)
向工作目录添加更改
git add --all
保存您的更改。
git stash
原来的目录现在应该被删除。进行本地提交。
git add --all
git commit -m "Rename directories"
流行的变化
git stash pop
将此修改为之前的提交。
git add --all
git commit --amend
您现在应该有一个重命名目录的提交。你现在可以恢复原来的ignorecase配置:
git config core.ignorecase true