Git thay thế nhánh bằng master
Trong nhiều quy trình công việc git, tất cả các thay đổi đối với mã của bạn cuối cùng sẽ kết thúc ở nhánh git push -f origin develop:master0 chứa các thay đổi mã chưa sẵn sàng để triển khai sản xuất Show Vì lý do này hay lý do khác, bạn có thể rơi vào tình huống khi git push -f origin develop:master0 của bạn đã thay đổi quá nhiều đến mức bạn không còn có thể dễ dàng hợp nhất nó với master . Hầu hết những lý do đó gợi ý các thực tiễn không tốt, nhưng tình huống như vậy cũng có thể phát sinh do các thay đổi được đưa vào quy trình triển khai hoặc quy trình làm việc git của bạnMột cách thoát khỏi tình trạng tiến thoái lưỡng nan này là thay thế hoàn toàn git push -f origin develop:master0 hiện tại. Có hai cách để đạt được điều đó Chiến lược hợp nhất 'Của chúng ta'Bạn có thể sử dụng các lệnh sau để hợp nhất develop thành master bằng cách sử dụng chiến lược hợp nhất 'của chúng tôi' git checkout develop git merge -s ours master git checkout master git merge develop Kết quả git push -f origin develop:master0 trước đó của bạn và bỏ qua tất cả các thay đổi trong master Ưu điểm của phương pháp này là bạn có được cam kết hợp nhất rõ ràng và các nhà phát triển khác sử dụng hai nhánh đó sẽ ít gặp sự cố hơn khi hợp nhất các nhánh tính năng của họ Nhược điểm là việc hợp nhất này có thể thất bại nếu git push -f origin develop:master0 và master của bạn khác nhau ở mức độ lớnlực đẩyMột giải pháp thay thế tàn bạo hơn là buộc đẩy nhánh git push -f origin develop:master0 dưới một tên khác git push -f origin develop:master Sử dụng cờ git push -f origin develop:master4, master trước đó của bạn được ghi đè hoàn toàn bằng git push -f origin develop:master0, bao gồm cả lịch sử của nó. Cảnh báo. điều này sẽ xóa tất cả các cam kết từ nhánh master không nằm trong nhánh git push -f origin develop:master0 Giải pháp này có thể phù hợp với trường hợp của bạn nếu bạn có một số ít chi nhánh khác và/hoặc các nhà phát triển khác. Nhược điểm của phương pháp này là tất cả các nhà phát triển đã có bản sao cục bộ của nhánh chính sẽ cần thực hiện một git push -f origin develop:master9 Buộc đẩy nhánh chính có thể thất bại nếu bạn sử dụng tính năng “Các nhánh được bảo vệ” của GitLab. Bạn có thể đảm bảo rằng người dùng của mình có quyền phù hợp hoặc tắt tính năng bảo vệ trong vài giây cho đến khi các thay đổi của bạn được lưu Git được sử dụng để theo dõi mã nguồn mà chúng tôi đang sử dụng; Khi chúng tôi phát triển các tính năng mới, lịch sử của chúng sẽ nằm trong tầm tay của chúng tôi, vì nó rất hữu ích trong việc phát triển bất kỳ ứng dụng hoặc tài liệu nào Git có hai cách để trộn các thay đổi từ nhánh này sang nhánh khác. Một là ____25, và cái kia là ____26 với bất kỳ nhánh nào vào nhánh kho lưu trữ khác Bài viết này sẽ thảo luận về việc hợp nhất hoàn toàn nhánh Trong khi sử dụng quy trình công việc Git, những thay đổi mà chúng tôi đã thực hiện đối với mã của mình cuối cùng phải được kết thúc trong nhánh Chúng tôi cũng phải hiểu rằng chúng tôi có thể có một số nhánh khác mà chúng tôi đã phát triển, chứa các thay đổi về mã chưa sẵn sàng để triển khai sản xuất và chúng tôi đã đặt tên cho nhánh này là git push -f origin develop:master9 theo yêu cầu và quy tắc của tổ chức Trong một số trường hợp, chúng tôi đã thực hiện quá nhiều thay đổi trong nhánh git push -f origin develop:master9 của mình và sau đó, chúng tôi gặp khó khăn khi kết hợp nhánh git push -f origin develop:master9 với nhánh master của mình; Một cách để khắc phục tình trạng bận rộn này là thay thế hoàn toàn chi nhánh git push -f origin develop:master9. Chúng ta có thể thực hiện nó theo hai cách được giải thích dưới đây Hợp nhất chiến lược thành git push -f origin dev: master 2Để thực hiện chiến lược này, trước tiên chúng tôi sẽ thực hiện các lệnh sau để hợp nhất nhánh git push -f origin develop:master9 vào nhánh master với sự trợ giúp của chiến lược hợp nhất 5, như sau
Tùy chọn 6 trong hợp nhất nhằm thay thế lịch sử cũ của các nhánh tính năng. Bây giờ master của chúng tôi sẽ có tất cả nội dung của git push -f origin develop:master9 của chúng tôi và bỏ qua tất cả các thay đổi trong master Bằng cách áp dụng phương pháp này, chúng tôi sẽ nhận được một cam kết hợp nhất sạch sẽ và an toàn; Mặt khác, nhược điểm của phương pháp này là sự hợp nhất này có thể không hoạt động nếu nhánh git push -f origin develop:master9 và nhánh master của chúng tôi đã tỏa ra quy mô lớn hơn trong một dự ánlực đẩyTùy chọn khác là buộc đẩy nhánh git push -f origin develop:master9 dưới một tên khác, nhưng phương pháp này khác xa so với vấn đề đã thảo luận ở trên
Với sự trợ giúp của cờ alias git push -f origin develop:master53 được đề cập trong lệnh, nhánh trước đó của chúng ta là master được ghi đè hoàn toàn bằng nhánh git push -f origin develop:master9, bao gồm cả lịch sử Chúng ta phải rất cẩn thận khi áp dụng phương pháp trên vì nó sẽ loại bỏ tất cả các xác nhận có trong nhánh git push -f origin develop:master9 của kho lưu trữ |