Git: How to rename a file or folder into different case (case-sensitive)
Yesterday I carelessly made a typo on case of directory name. Result in Rails can’t find file correctly. But when I try to rename it. I found out that git doesn’t recognize a change that same name in differ case (case-insensitive).
Althought I can run this
git config core.ignorecase false
to make git case-sensitive. But this can cause unexpected consequence on other projects.
I read some tutorials(How do I rename a file in git that differs by case only?、 git mv and only change case of directory)
And this is my final solution:
mv Typo typo_temp
git add . # add to staging area
mv typo_temp typo
git add .
git commit -m "Fix case typo"
In some tutorials, they commit on “typo_temp” step. While I just put it in staging area, it still work.
BTW, the mistake I made is:
I want /users
routes to /app/controller/api/users_controller
(like scope :module). The purpose is to remain API url but move code file to a sub directory.
# config/routes.rb
get "users" => "api/users_controller#index"
But, Yes, I made the typo on api/
folder (as Api/
)
The strange thing is, it works on my laptop. But throws this expection on production machine:
ActionController::RoutingError (uninitialized constant Api)
Why it doesn’t break on my laptop!? Really strange @_@