Git 更改文件名导致无法跟踪

Git change filename has caused it to be not tracked

我有一个以前名为 Favourite.rb 的文件 - 我在我的代码编辑器中将它重命名为 favourite.rb 我将我的更改推送到 bitbucket 中并注意到,该文件仍然是 "Favourite.rb" .我是 运行 mac osx - 听说它不区分大小写的文件系统。所以我尝试完全重命名文件 - 强制 git 接受更改。还是行不通。我尝试添加文件,还尝试了 git mv,其中 git 表示它不受版本控制...但我已经添加了它?!那到底是怎么回事!

请帮忙:

Andys-MacBook-Pro:models andy$ ls
age_collection.rb   category.rb     favourite.rb        mention.rb      user.rb
age_range.rb        concerns        follow.rb       session.rb      visit.rb
ahoy            event.rb        invitation.rb       sub_category.rb
attendee.rb     event_category.rb   like.rb         test.rb
Andys-MacBook-Pro:models andy$ git add .
Andys-MacBook-Pro:models andy$ git commit -am "all up to date"
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean
Andys-MacBook-Pro:models andy$ git mv favourite.rb foo.rb
fatal: not under version control, source=app/models/favourite.rb, destination=app/models/foo.rb
Andys-MacBook-Pro:models andy$ 

安装 OSX 时,您可以选择将驱动器格式化为区分大小写或不区分大小写。听起来你的区分大小写(大小写很重要)。

git 的问题在于,要重命名文件,您必须使用 git 来完成。如果您通过文本编辑器重命名该文件,git 将不知道并认为原始文件刚刚被删除,并且它将重命名的文件视为 "unknown".

运行 git statusfavourite.rb 应该出现在 "untracked files" 下。如果是这种情况,请将其重命名回 Favourite.rb (mv favourite.rb Favourite.rb),然后通过 git 对原始文件进行重命名:git mv Favourite.rb favourite.rb

git status 将再次向您显示更改。 commitpush 在 bitbucket 上应该一切正常。

将其重命名为原来的大小写 (mv favourite.rb Favourite.rb),然后 git mv 将其更改为 foo.txt,然后 然后 git mv它有你想要的外壳:

git mv Favourite.rb foo.rb
git mv foo.rb favourite.rb