Tôi làm việc với một nhóm nhỏ sử dụng git để quản lý mã nguồn. Gần đây, chúng tôi đã làm các nhánh chủ đề để theo dõi các tính năng sau đó hợp nhất chúng thành chủ cục bộ sau đó đẩy chúng vào một kho lưu trữ git trung tâm trên một máy chủ từ xa. Điều này làm việc tuyệt vời khi không có thay đổi nào được thực hiện trong master: Tôi tạo nhánh chủ đề của mình, commit nó, hợp nhất nó vào master, sau đó push. Hoan hô.git rebase vào bản cập nhật từ xa
Tuy nhiên, nếu ai đó đã đẩy xuất xứ trước khi tôi làm, các cam kết của tôi không tiến nhanh. Do đó, một cam kết hợp nhất xảy ra sau đó. Điều này cũng xảy ra khi một nhánh chủ đề cần hợp nhất với nội bộ chính để đảm bảo các thay đổi của tôi hoạt động với mã như bây giờ. Vì vậy, chúng tôi kết thúc với hợp nhất cam kết ở khắp mọi nơi và một git đăng nhập cạnh tranh một vòng tay tình bạn.
Vì vậy, việc rebasing là lựa chọn hiển nhiên. Những gì tôi muốn là:
- tạo các chi nhánh chủ đề giữ nhiều cam kết
- thanh toán tổng thể và kéo (nhanh về phía trước, vì tôi đã không cam kết để làm chủ)
- chi nhánh rebase chủ đề lên người đứng đầu mới của nắm vững
- rebase chủ đề chống chủ (vì vậy các chủ đề bắt đầu từ chủ đầu), đưa tổng thể lên đến tôi đầu chủ đề
cách của tôi để làm điều này hiện đang được liệt kê dưới đây:
01.git checkout master
git rebase master topic_1
git rebase topic_1 topic_2
git checkout master
git rebase topic_2
git branch -d topic_1 topic_2
Có cách nào nhanh hơn để thực hiện việc này không?
Là sự hợp nhất cuối cùng cần thiết. Tôi có thể tưởng tượng sự mới lạ của việc nhìn thấy tất cả các nhánh làm việc trên đồ thị nhưng mã đã được tích hợp vào tổng thể và tôi không nghĩ rằng nó không hợp lý để tung ra mã làm việc nếu nó không trở thành một ngã ba chính hãng. Nếu không thì IMHO, câu trả lời này là hoàn hảo. –