Làm thế nào để kết hợp nhóm các cam kết cục bộ thành một lần đẩy trong IDEA?


85

Trong IDEA, tôi đang cố gắng thúc đẩy một số cam kết.

Tôi có một yêu cầu rằng trên máy chủ từ xa, nó trông giống như một hành động.

Tôi bấm để đẩy và thấy cửa sổ sau nhập mô tả hình ảnh ở đây

Tôi dự kiến ​​sẽ thấy hộp kiểm bí ở đây nhưng không thấy.

Làm ơn giúp tôi.


2
Không thể đưa ra lời khuyên cho IDEA, nhưng việc thu gọn là một phần của rebase tương tác hoặc hợp nhất, không phải là cam kết. Hãy thử nhìn vào đó.
musiKk

Câu trả lời:


115

Bạn có thể làm điều đó bằng cách sử dụng rebase. Truy cập VCS / Git / Rebase . Sau đó chọn tùy chọn Tương tác . Nó sẽ hiển thị cho bạn một danh sách các cam kết, nơi bạn có thể chọn những cam kết nào bạn muốn.

Sau khi bạn nhấn Bắt đầu khôi phục, nó sẽ nhắc bạn một thông báo cam kết cho cam kết bị bóp nghẹt. Sau khi hoàn tất, bạn có thể đẩy cam kết bị bóp nghẹt của mình bằng hộp thoại đẩy.

Hộp thoại bí

Thông tin thêm về rebase trong IntelliJ có tại đây .


9
cũng có thể hữu ích khi đọc bài viết này về Công cụ Git - Lịch sử viết lại để biết nội dung cần nhập vào "Trường Onto" của hộp thoại "Chi nhánh Rebase": e..g HEAD~3có thể được sử dụng để chọn 3 lần cam kết cuối cùng.
TmTron

Khi bạn gộp một loạt các cam kết lại với nhau, các chi tiết riêng lẻ của từng cam kết đó có bị mất không? có phải nó chỉ trông giống như một cam kết lớn?
ycomp

@ycomp Có, rebase tương tác viết lại lịch sử, do đó, các cam kết riêng lẻ bị mất và một cam kết mới được tạo ở vị trí của chúng.
Bohuslav Burghardt

Cảm ơn, bạn có thể hoàn tác một bí mật?
ycomp

@ycomp Tôi chưa bao giờ thực sự làm điều đó, nhưng nó sẽ có thể. Vui lòng tham khảo các bài đăng SO sau: stackoverflow.com/q/10260151/1291150 , stackoverflow.com/q/134882/1291150
Bohuslav Burghardt

33

Có một cách mới:

Kiểm soát phiên bản -> Nhật ký -> Nhấp chuột phải vào cam kết -> Interactively rebase from herevà sau đó bạn có thể chọn để chọn / loại bỏ phần còn lại của cam kết.


1
Vấn đề với cách tiếp cận này là không có cách nào để chọn "Squash" cho nhiều cam kết và việc thực hiện từng cái một sẽ rất tẻ nhạt.
Dmitry Serdiuk

4
@DmitrySerdiuk bạn có thể thay đổi nhấp chuột để chọn các cam kết bạn muốn ép và sau đó nhấp chuột phải -> chọn bí.
Aarjav

1
@Aarjav OH MY GOD đây chính xác là tôi nghĩ nó bị thiếu! Không có gợi ý nào về menu nhấp chuột phải trong hộp thoại.
o_nix

21

Đối với tôi, cách đơn giản nhất với intellij là:

  • Đi tới Logtab và chọn cam kết mà bạn muốn hoàn thành
  • Nhấp chuột phải và chọn Reset Branch to this commit
  • Chọn các mixintùy chọn để giữ các thay đổi của bạn khỏi cam kết
  • Cam kết các thay đổi của bạn và đừng quên kiểm tra Amend committùy chọn

1
Đây thực sự là cách đơn giản nhất và tôi thấy nó ít gây căng thẳng và dễ mắc lỗi nhất.
davrog

2
Tôi đề nghị rằng ở bước 3, tốt hơn là nên chọn một Softtùy chọn thay vì Mixedcó tất cả các thay đổi đã được tổ chức cho cam kết.
provisota
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.