2012-03-06 37 views
32

Tôi đã tự hỏi liệu có ai có đề xuất tốt hơn để giữ một chi nhánh tính năng đồng bộ với nhánh chính của nó hay không.Cách dễ dàng hơn để giữ chi tiết tính năng git được cập nhật

Chúng tôi thường có nhiều chi nhánh tính năng đang được thực hiện tại một thời điểm, mỗi nhánh được lấy từ chi nhánh develop của chúng tôi. Nó khá phổ biến cho các chi nhánh tính năng được sáp nhập vào develop một vài lần một ngày.

Để luôn cập nhật các thay đổi (tức là giải quyết xung đột), tôi thấy tôi cần giữ các chi tiết tính năng mà tôi đang tích cực làm việc cập nhật với develop.

Để làm điều này tôi chạy các lệnh này một vài lần một ngày:

git checkout develop 
git pull 
git checkout feature/foo 
git merge develop 
git push 

cuối cùng git push Tôi thường chỉ làm gì nếu tôi đang làm việc với một người nào khác trên chi nhánh tính năng.

Có cách nào tốt hơn hoặc thuận tiện hơn để thực hiện việc này không?

Trả lời

38

Vâng, git thực sự được thiết lập để gói những thứ bạn thường xuyên làm một tập lệnh và sau đó gọi tập lệnh thay thế. Không có một số lượng lớn các biến thể ở trên. Tất cả chúng sẽ yêu cầu kéo nhánh ngược dòng, và sau đó tích hợp các thay đổi của bạn với thượng nguồn. Một số điều có thể rút ngắn cho bạn có thể là:

git checkout feature/foo 
git pull --all 
git rebase develop 

Bằng cách đó bạn có thể chỉ cần kéo tất cả các nhánh lên trên trong một cảnh mà không phải chuyển sang nhánh khác. Và việc rebasing có thể là một hoạt động mà bạn có thể thích hơn khi hợp nhất, nhưng đó thường là một lựa chọn cá nhân tùy thuộc vào cách bạn muốn lịch sử tìm kiếm.

+0

là phần bổ sung, nếu bạn đặt tên cho bất kỳ tập lệnh git-somename nào và đặt nó trên đường dẫn, thì bạn có thể gọi nó trực tiếp như lệnh git bình thường, do đó, làm cho dòng lệnh trên "git-featurefoo" sẽ cho phép bạn gõ 'git featurefoo' để thực hiện tất cả các hành động trong một lệnh. –

+0

Đánh dấu là đúng. Và không chỉ vậy, nhưng bạn cũng có thể kiểm tra 'git aliases'. –

+0

afaik cũng có khả năng tự động rebase sau khi kéo mặc dù tôi không bao giờ sử dụng nó. Có lẽ đó là cách để đi cho bạn? – nanoquack

Các vấn đề liên quan