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 master. Bạn cũng có thể có một nhánh

git push -f origin develop:master
0 chứa các thay đổi mã chưa sẵn sàng để triển khai sản xuất

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:master
0 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ạn

Mộ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 master bằng

git push -f origin develop:master
0 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ả master bây giờ sẽ chứa nội dung của

git push -f origin develop:master
0 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:master
0 và master của bạn khác nhau ở mức độ lớn

lực đẩy

Một giải pháp thay thế tàn bạo hơn là buộc đẩy nhánh

git push -f origin develop:master
0 dưới một tên khác

git push -f origin develop:master

Sử dụng cờ

git push -f origin develop:master
4, master trước đó của bạn được ghi đè hoàn toàn bằng
git push -f origin develop:master
0, 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:master
0

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:master
9

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 master trong Git từ nhánh kho lưu trữ khác

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 master khi hoàn thành các tác vụ của ứng dụng

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:master
9 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:master
9 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:master
9 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 master của chúng tôi bằng chi nhánh

git push -f origin develop:master
9. 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:master
9 vào nhánh master với sự trợ giúp của chiến lược hợp nhất
git push -f origin dev: master
5, như sau

git checkout dev
git merge -s ours master
git checkout master
git merge dev

Tùy chọn

git push -f origin dev: master
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:master
9 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:master
9 và nhánh master của chúng tôi đã tỏa ra quy mô lớn hơn trong một dự án

lực đẩy

Tùy chọn khác là buộc đẩy nhánh

git push -f origin develop:master
9 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

git push -f origin dev: master

Với sự trợ giúp của cờ alias

git push -f origin develop:master
53 đượ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:master
9, 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 master vì chúng cũng không có sẵn trong nhánh

git push -f origin develop:master
9 của kho lưu trữ

Chủ Đề