Renaming a file isn't properly handled in git

  • 1
  • 3

I recently used the "Rename" function on a file's context menu in the Refactor submenu. It worked great to update references in my code, but I noticed an issue when I was organizing a commit in git.

The original file was removed and the new one was added thereby destroying version history. This was equivalent to the following comands in Bash:

cat original_file.py > new_file.py
rm original_file.py
Instead, this should have been done through git to retain the version history:

git mv original_file.py new_file.py
Unlike some other version control systems, there is no difference between these two operations in Git. Git detects renamed files automatically, even if the mv operation wasn't used.

http://stackoverflow.com/questions/7938582/how-does-git-detect-similar-files-for-its-rename-detection
--
Dmitry Jemerov, Chief Technology Officer, JetBrains