Trong công việc git ngày-to-ngày của tôi, tôi có nhiều chi nhánh chủ đề, như vậy:Git: duy trì nhiều chi nhánh chủ đề trên cơ sở thường xuyên di chuyển
o--o--o (t2) / o--o (t1) / o--o--o (master) \ o--o--o (t3)
Khi tôi kéo từ thượng nguồn,
o--o--o (t2) / o--o (t1) / o--o--o--n--n--n (master) \ o--o--o (t3)
tôi muốn rebase tất cả các chi nhánh chủ đề của tôi trên đầu trang của chủ mới:
o'--o'--o' (t2) / o'--o' (t1) / o--o--o--n--n--n (master) \ o'--o'--o' (t3)
Hiện tại tôi làm điều này bằng tay, sử dụng git rebase --onto
. Trong trường hợp này, toàn bộ quá trình cập nhật sẽ là:
$ git checkout master
$ git pull
$ git rebase master t1
$ git rebase --onto t1 t2~3 t2
$ git rebase master t3
Điều này thậm chí còn tăng lên khi nhảy giữa các nhánh chủ đề khác nhau và thêm cam kết.
Sự phụ thuộc giữa các nhánh chủ đề trong trường hợp của tôi hoàn toàn giống như cây: không nhánh nào phụ thuộc vào nhiều hơn một nhánh khác. (Tôi phải cuối cùng cập nhật các bản vá lỗi phụ thuộc vào một số thứ tự cụ thể, vì vậy tôi chọn thứ tự ưu tiên đó.)
Có công cụ nào có thể giúp tôi quản lý quy trình làm việc này không? Tôi đã thấy TopGit, nhưng dường như nó được gắn khá nhiều với luồng công việc dựa trên email tg patch
, điều này không liên quan đến tôi.
Tại sao các bạn rebasing 't2' vào 'master' thay vì chỉ rebasing nó vào' t1', như bạn thấy trong biểu đồ của bạn? Tương tự, với 't3', cờ' --onto' không phù hợp. –
Ngoài ra, hãy xem câu hỏi [chi nhánh git rebase với tất cả các nhánh con] (http://stackoverflow.com/q/2730866/112968) – knittl
Kevin: Rất tiếc, có - typo :) – nornagon