Tôi còn khá mới với git, tôi đã sử dụng Subversion trước đây.
Tôi nhận thấy rằng hầu hết các plugin git đồ họa và các plugin IDE dường như không thể hiển thị lịch sử của tệp nếu tệp đã được đổi tên. Khi tôi sử dụng
git log --follow
trên dòng lệnh, tôi có thể thấy toàn bộ nhật ký đổi tên.
Theo Linus Torvalds , công tắc --follow là một thú vui "SVN noob", người dùng git nghiêm túc không sử dụng nó:
--follow là một bản hack hoàn toàn, có nghĩa là chỉ làm hài lòng người dùng cũ SVN, những người chưa bao giờ biết bất cứ điều gì về những thứ như cha mẹ hoặc đồ thị sửa đổi tốt đẹp nào.
Nó không hoàn toàn cơ bản, nhưng việc triển khai "--follow" hiện tại thực sự là một điều tiền xử lý nhanh chóng được đưa vào logic đi bộ sửa đổi, thay vì là bất cứ điều gì thực sự tách rời.
Nó thực sự được thiết kế như một thú vui "SVN noob", không phải là một thứ "chức năng git thực sự". Ý tưởng là bạn sẽ thoát khỏi suy nghĩ (tan vỡ) khi nghĩ rằng đổi tên vật chất trong bức tranh lớn.
Câu hỏi của tôi : Làm thế nào để những người dùng khó tính trong số bạn có được lịch sử của một tập tin khi nó được đổi tên? Cách 'thực sự' để làm điều này là gì?
/bin/mv oldfile newfile
), nhưng sau đó git add newfile; git rm oldfile
, kết quả không thể phân biệt được với git mv oldfile newfile
.
git log --follow
cải thiện một chút với git 2.9 (tháng 6 năm 2016): xem câu trả lời của tôi bên dưới
--color-moved
khi bạn diff
.
git mv oldfile newfile
không gây đổi tên được ghi lại ở tất cả - nó chỉ giống như xóa một tập tin và thêm khác. git chỉ hoạt động đổi tên và sao chép từ trạng thái của cây tại mỗi lần xác nhận sau khi thực tế.