Решение, которое вы упомянули, должно работать, так как git отслеживает изменения сначала на основе хеша файлов, а затем их местоположения.
Это не будет работать, если в процессе перемещения файла вы меняете содержимоефайлы.
В нижнем случае, попробуйте, и если это не сработает, вы можете отменить изменения, прежде чем отправлять изменения в мастер репо :).Это одна из причин, почему мне действительно нравится git.
Edit
Я забыл упомянуть, что для просмотра изменений после переименования необходимо использовать параметр --folfol.Проверьте этот пример
Сначала я создал новый репозиторий git
94:workspace augusto$ mkdir gittest
94:workspace augusto$ cd gittest/
94:gittest augusto$ git init
Initialized empty Git repository in /Volumes/Data/dev/workspace/gittest/.git/
Затем создал файл в folder / test
94:gittest augusto$ mkdir folder
94:gittest augusto$ vi folder/test
94:gittest augusto$ git add folder/test
94:gittest augusto$ git commit -am "added file"
[master (root-commit) 7128f82] added file
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 folder/test
Затемпереместил файл в newfolder / test
94:gittest augusto$ mkdir newfolder
94:gittest augusto$ mv folder/test newfolder/
94:gittest augusto$ git add newfolder/test
94:gittest augusto$ git commit -am "moved/renamed file"
[master 4da41f5] moved/renamed file
1 files changed, 0 insertions(+), 0 deletions(-)
rename {folder => newfolder}/test (100%)
И git log --follow newfolder/test
показывает полную историю (я добавил параметр -p, чтобы показать дополнительную информацию, такую как путь).
94:gittest augusto$ git log --follow -p newfolder/test
commit 4da41f5868ab12146e11820d9813e5a2ac29a591
Author: Augusto Rodriguez <xxxx@gmail.com>
Date: Sat Aug 20 18:20:37 2011 +0100
moved/renamed file
diff --git a/folder/test b/newfolder/test
similarity index 100%
rename from folder/test
rename to newfolder/test
commit 7128f8232be45fd76616f88d7e164a840e1917d5
Author: Augusto Rodriguez <xxxx@gmail.com>
Date: Sat Aug 20 18:19:58 2011 +0100
added file
diff --git a/folder/test b/folder/test
new file mode 100644
index 0000000..3b2aed8
--- /dev/null
+++ b/folder/test
@@ -0,0 +1 @@
+this is a new file
Надеюсь, это поможет!