2012-04-03 26 views
39

Nút "Yêu cầu kéo này có thể được tự động hợp nhất [Yêu cầu kéo]] trong github thật tuyệt - ngoại trừ việc nó tạo ra các bong bóng hợp nhất.Tự động hợp nhất các yêu cầu kéo trên Github mà không có bong bóng kết hợp

Có cách nào để sử dụng nút/chức năng này trong github mà không cần tạo bong bóng hợp nhất không?

+0

Không chắc chắn tôi đã từng nghe cụm từ "bong bóng" trước đó (liên quan đến git); Tôi giả sử nó có nghĩa là "cam kết"? – chharvey

+0

@chharvey Vui lòng google "hợp nhất bong bóng". :) – Marco

Trả lời

3

Và .. họ cố định nó!

Xem GitHub's blog on squashing your merge commits

Nếu bạn đi đến các cài đặt cho kho lưu trữ của bạn, bạn sẽ thấy một "Hợp nhất nút" phần (dưới Options). Nó sẽ có 2 nút có sẵn:

phép hợp nhất cam kết
Thêm tất cả cam kết từ các chi nhánh đầu đến các chi nhánh cơ sở với việc kết hợp với cam kết.

phép bí sáp nhập
Kết hợp tất cả các cam kết từ các chi nhánh đầu vào một cam kết duy nhất tại các chi nhánh cơ sở.

Nếu bạn bỏ chọn tùy chọn đầu tiên (và rời khỏi Cho phép hợp nhất bíp được chọn), PR "hợp nhất" sẽ dẫn đến rebase và squashes.

+9

Ngoại trừ việc bóng quần không tương đương với rebase + fast-forward merge trong trường hợp bạn có nhiều cam kết mà bạn muốn giữ riêng ... –

+0

@FlorentGuillaume Bạn hoàn toàn chính xác! Thật không may, đó là không có gì để làm với tránh một bong bóng hợp nhất hay không. ; D – Marco

+2

Tôi chỉ nói rằng * Cho phép hợp nhất squash * có (rõ ràng) tác dụng phụ bên cạnh tránh bong bóng hợp nhất. –

40

số

Các git blog nói cách sử dụng nút này, bạn luôn nhận được một hợp nhất --no-ff (không merge nhanh về phía trước).

Bạn sẽ phải làm việc kết hợp với thủ công nếu bạn không muốn kết hợp bong bóng:

git checkout master 
git remote add cameronmcefee git://github.com/cameronmcefee/Spoon-Knife.git 
git fetch cameronmcefee 
git merge cameronmcefee/my-branch 
git push origin master 
+1

Bạn có thể thiết lập repo để tìm nạp các yêu cầu kéo mà không cần thêm từ xa: https://help.github.com/articles/checking-out-pull-requests-locally –

+2

chúng tôi đã thực hiện tự động đơn giản để thực hiện hợp nhất nhanh về phía trước trên github https://github.com/checkstyle/checkstyle/blob/master/fast-forward-merge.sh –

+0

Lý do cho '--no-ff' trong trường hợp này là gì? – gvlasov

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