Làm sao git có thể biết đường dẫn thư mục đã thay đổi?
(kwoncheol.me)- Trước khi bắt đầu
-
git phân biệt tệp bằng giá trị hash
-
bốn kiểu object của git
-
thay đổi đường dẫn thư mục và đổi tên tệp thực chất là cùng một thao tác
-
Tái cấu trúc cây thư mục, và git thông minh hơn tưởng tượng khá nhiều
-
Suy luận của git
-
Quá trình suy luận
renamed,edit-renamedcủa git
Bước 1: chọn ứng viên
Bước 2: so sánh hash tệp (tìm renamed)
Bước 3: so sánh độ tương đồng giữa các tệp (tìm edit-renamed)
→ Có phải đây là phép tính quá tốn kém không?
-
Câu chuyện vật lộn hậu trường
-
Kết luận
1 bình luận
Ngoài lề một chút, nhưng có vẻ cách Git và GitHub phát hiện đường dẫn tệp là khác nhau.
Trong Git thì rõ ràng được nhận diện là đổi tên, nhưng khi mở PR trên GitHub thì nó lại hiển thị như thể một tệp bị xóa và một tệp khác được thêm vào, nên không hiện diff, khá là bất tiện...