Tất cả các thiết lập lại git này, cứng, mềm và mọi thứ khác được đề cập ở đây có thể đang hoạt động (nó không phù hợp với tôi) nếu bạn thực hiện các bước chính xác và một số loại thần.
Nếu bạn là Joe smo trung bình, hãy thử điều này:
Làm thế nào để sử dụng git merge --squash?
Cứu mạng tôi, và tôi sẽ đi chơi bóng quần, đã sử dụng nó 4 lần kể từ khi tôi phát hiện ra nó. Đơn giản, sạch sẽ và cơ bản là 1 comamnd. Nói ngắn gọn:
Nếu bạn ở trên một chi nhánh, hãy gọi nó là "my_new_feature", hãy phát triển và yêu cầu kéo của bạn có 35 lần xác nhận (hoặc nhiều lần) và bạn muốn nó là 1.
A. Hãy chắc chắn rằng chi nhánh của bạn được cập nhật, Tiếp tục phát triển, nhận bản mới nhất và hợp nhất và giải quyết mọi xung đột với "my_new_feature"
(bước này thực sự bạn nên thực hiện ngay khi bạn có thể mọi lúc mọi nơi)
B. Nhận bản phát triển mới nhất và phân nhánh đến một chi nhánh mới gọi nó là "my_new_feature_squashing"
C. ma thuật ở đây.
Bạn muốn đưa công việc của mình từ "my_new_feature" sang "my_new_feature_squashing"
Vì vậy, hãy làm (trong khi trên nhánh mới của bạn, chúng tôi đã tạo ra phát triển):
git merge --squash my_new_feature
Tất cả các thay đổi của bạn bây giờ sẽ nằm trên chi nhánh mới của bạn, vui lòng kiểm tra nó, sau đó chỉ cần thực hiện 1 cam kết duy nhất, đẩy, PR mới của chi nhánh đó - và chờ lặp lại vào ngày hôm sau.
Bạn không thích viết mã? :)
git rebase -i 58333012713fc168bd70ad00d191b3bdc601fa2d
hiện một cuộc nổi loạn tương tác trong đó cam kết là cam kết cuối cùng không thay đổi