Nếu bạn đang sử dụng TortoiseGit, điều quan trọng cần lưu ý là phát hiện đổi tên tự động của Git xảy ra trong quá trình cam kết nhưng thực tế điều này sẽ xảy ra không phải lúc nào cũng được phần mềm hiển thị trước. Tôi đã chuyển hai tập tin sang một thư mục khác và thực hiện một số chỉnh sửa nhỏ. Tôi sử dụng TortoiseGit làm công cụ cam kết của mình và danh sách Thay đổi được thực hiện cho thấy các tệp bị xóa và thêm, không bị di chuyển. Chạy trạng thái git từ dòng lệnh cho thấy một tình huống tương tự. Tuy nhiên, sau khi cam kết các tệp, chúng hiển thị như được đổi tên trong nhật ký. Vì vậy, câu trả lời cho câu hỏi của bạn là, miễn là bạn chưa làm gì quá quyết liệt, Git sẽ tự động đổi tên.
Chỉnh sửa: Rõ ràng nếu bạn thêm các tệp mới và sau đó thực hiện trạng thái git từ dòng lệnh, đổi tên sẽ hiển thị trước khi cam kết.
Chỉnh sửa 2: Ngoài ra, trong TortoiseGit, thêm các tệp mới trong hộp thoại cam kết nhưng không cam kết chúng. Sau đó, nếu bạn đi vào lệnh Show Log và xem thư mục làm việc, bạn sẽ thấy Git có phát hiện ra việc đổi tên trước khi cam kết hay không.
Câu hỏi tương tự cũng được đặt ra ở đây: https://tortoisegit.org/su/1389 và đã được ghi lại là một lỗi cần sửa ở đây: https://tortoisegit.org/su/1440 Hóa ra đó là vấn đề hiển thị với cam kết của TortoiseGit hộp thoại và loại tồn tại trong trạng thái git nếu bạn chưa thêm các tệp mới.
old_file.txt
, sau đógit mv old_file.txt new_file.txt
là tương đương vớigit rm --cached old_file.txt
,mv old_file.txt new_file.txt
,git add new_file.txt
.