git mv file1 file2
git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# renamed: file1 -> file2
git stash
git stash pop
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# new file: file2
#
# Changes not staged for commit:
# (use "git add/rm <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# deleted: file1
Như bạn có thể thấy, git mất mối quan hệ được đổi tên sau dấu gạch chéo/bật. Có cách nào để lấy lại mối quan hệ này, hoặc có stash biết rằng các tập tin đã được di chuyển? Tôi thường stash để xem trạng thái hệ thống của tôi là như thế nào trước khi thay đổi, nhưng có nó mất mối quan hệ đổi tên là một vấn đề đối với tôi. Tôi không biết làm thế nào để sửa chữa nó khác hơn là xóa các tập tin mới, làm một git mv một lần nữa, và thay thế các nội dung của tập tin mới.stit và pop cho thấy tập tin không còn được đánh dấu là di chuyển?
Lưu ý: wo đó uld là thú vị để thử lại với Git 2.12 (Q1 2017). Xem http: // stackoverflow.com/a/41307892/6309 – VonC