Hãy xem xét tình huống sau:
- Bạn có một bản sao của kho git
- Bạn có một số cam kết cục bộ (các cam kết chưa được đẩy ở bất cứ đâu)
- Kho lưu trữ từ xa có các xác nhận mới mà bạn chưa điều chỉnh
Vì vậy, một cái gì đó như thế này:
Nếu bạn thực hiện git pull
với các cài đặt mặc định, bạn sẽ nhận được một cái gì đó như thế này:
Điều này là do git thực hiện hợp nhất.
Có một sự thay thế, mặc dù. Thay vào đó, bạn có thể yêu cầu pull thực hiện rebase:
git pull --rebase
và bạn sẽ nhận được điều này:
Theo tôi, phiên bản nổi loạn có rất nhiều ưu điểm mà chủ yếu xoay quanh việc giữ cả mã và lịch sử của bạn sạch sẽ, vì vậy tôi hơi bị sốc bởi thực tế là git mặc định hợp nhất. Có, giá trị băm của các cam kết tại địa phương của bạn sẽ được thay đổi, nhưng đây có vẻ là một cái giá nhỏ để trả cho lịch sử đơn giản hơn mà bạn nhận được.
Mặc dù vậy, tôi không cho rằng đây là một mặc định xấu hay sai. Tôi chỉ gặp khó khăn khi nghĩ về lý do tại sao hợp nhất có thể được ưa thích cho mặc định. Chúng ta có cái nhìn sâu sắc về lý do tại sao nó được chọn? Có những lợi ích làm cho nó phù hợp hơn như một mặc định?
Động lực chính cho câu hỏi này là công ty của tôi đang cố gắng thiết lập một số tiêu chuẩn cơ bản (hy vọng, giống như hướng dẫn hơn) về cách chúng tôi tổ chức và quản lý kho lưu trữ của mình để giúp các nhà phát triển tiếp cận với kho lưu trữ mà họ chưa từng làm việc trước đây. Tôi quan tâm đến việc tạo ra một trường hợp mà chúng ta thường nên rebase trong loại tình huống này (và có lẽ là để khuyến nghị các nhà phát triển đặt cấu hình toàn cầu của họ thành rebase theo mặc định), nhưng nếu tôi phản đối điều đó, tôi chắc chắn sẽ hỏi tại sao rebase lại không ' t mặc định nếu nó rất tuyệt Vì vậy, tôi tự hỏi nếu có một cái gì đó tôi đang thiếu.
Có ý kiến cho rằng câu hỏi này là một bản sao của Tại sao nhiều trang web lại thích ăn gừng rebase trên hơn so với trên git ; tuy nhiên, câu hỏi đó có phần ngược lại với câu hỏi này. Nó thảo luận về giá trị của rebase so với hợp nhất, trong khi câu hỏi này hỏi về lợi ích của việc hợp nhất so với rebase. Các câu trả lời phản ánh điều này, tập trung vào các vấn đề với hợp nhất và lợi ích của rebase.