Tôi nghĩ rằng tôi hiểu git pull
và đây là cách tôi giải thích nó trong, cái mà tôi gọi, "thuật ngữ đơn giản":Làm thế nào để giải thích "git pull --rebase" trong thuật ngữ đơn giản?
- Nói chung,
git pull
khoảng sáp nhập một "từ xa" chi nhánh thành một "địa phương" chi nhánh. - Cụ thể hơn, git sử dụng nội dung của nhánh "từ xa" để "cập nhật"/"sửa đổi" nội dung của nhánh "cục bộ".
- Thậm chí chi tiết hơn, nếu một tệp đã được sửa đổi trong chi nhánh "cục bộ" nhưng không nằm trong nhánh "từ xa", sau đó sau khi hợp nhất, nội dung của tệp sẽ giống với nội dung trong "địa phương" " chi nhánh. Điều ngược lại cũng đúng. Nếu một tệp đã được sửa đổi trên nhánh "từ xa" nhưng không phải trong nhánh "cục bộ", nội dung sẽ được lấy từ nhánh "từ xa".
- Nếu một tệp đã được sửa đổi trong cả hai nhánh ("cục bộ" và "từ xa") so với git sẽ thử để sửa đổi từ cả hai nhánh. Nếu các thay đổi xảy ra ở các vị trí khác nhau của tệp, cả hai thay đổi sẽ được áp dụng và có mặt trong nội dung của tệp sau khi hợp nhất.
- Nếu những thay đổi xảy ra trên cùng một nơi, chúng tôi có những gì được biết là "xung đột hợp nhất" và tôi sẽ không liên lạc trường hợp này để đơn giản.
- Kết quả của việc hợp nhất, chúng tôi sửa đổi kho lưu trữ "cục bộ" và do đó chúng tôi cần phải "cam kết".
Bây giờ tôi muốn nhận được cùng một loại giải thích cho git pull --rebase
. Tôi không muốn sử dụng các thuật ngữ như "head", "index", "fetch", "upstream" bởi vì các thuật ngữ/khái niệm này chỉ gây nhầm lẫn cho người mới bắt đầu như tôi. Tôi biết rằng tôi cần phải học những khái niệm "tiên tiến" này và tôi làm điều đó bằng cách đọc hướng dẫn nhưng bây giờ, là một phần của quá trình học tập của tôi, tôi muốn hiểu git pull --rebase
.
THÊM
Tôi nghĩ rằng tại một số điểm tôi nghe lời giải thích sau. Bởi git pull --rebase
. Khi chúng ta hợp nhất, chúng ta làm nó không theo cách "đối xứng", như được mô tả ở trên. Thay vào đó, trước tiên chúng ta "quên" những thay đổi trong kho lưu trữ "cục bộ" và chỉ áp dụng các thay đổi từ kho lưu trữ "từ xa". Bằng cách đó, chúng tôi về cơ bản "sao chép" kho lưu trữ từ xa. Sau đó, chúng tôi áp dụng các thay đổi từ kho lưu trữ "cục bộ" trên đầu trang. Tuy nhiên, nó vẫn không rõ ràng với tôi chính xác nó có nghĩa là gì. Đặc biệt, những gì "trên đầu" có nghĩa là.
Lưu ý rằng git pull là git fetch, sau đó là git merge. Nó thực sự có thể giúp hiểu HEAD là gì, cùng với chỉ mục. Nếu không, bạn sẽ trúng một bãi cát nếu có thứ gì đó không được lên kế hoạch khá nhanh. – rubenvb
Như tôi đã viết trong câu hỏi, tôi không biết những gì "lấy" có nghĩa là. – Roman
@Roman, bạn làm bây giờ ... – alexis