git이 먼저 파일의 해시를 기반으로 변경 사항을 추적 한 다음 해당 위치를 추적하므로 언급 한 솔루션이 작동합니다.
파일 이동의 일부로 파일 내용을 변경하면 작동하지 않습니다.
하단의 경우 시도해보고 작동하지 않으면 변경 사항을 마스터 저장소에 푸시하기 전에 변경 사항을 되돌릴 수 있습니다. 이것이 내가 정말 자식을 좋아하는 이유 중 하나입니다.
편집하다
이름을 바꾼 후 변경 사항을 보려면 '--follow'매개 변수를 사용해야한다는 점을 잊었습니다. 이 예를 확인하십시오.
먼저 새로운 git repo를 만들었습니다.
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/
그런 다음 폴더 / 테스트에 파일을 생성했습니다.
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
그런 다음 파일을 새 폴더 / 테스트 로 이동했습니다.
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
이게 도움이 되길 바란다!
git mv
이동 한 파일을 감지해야합니다 . 를git add
사용하여 새 파일을 추가 한 후이를 확인할 수 있습니다git status
.