Làm thế nào để dễ dàng hái cherry với magit?


40

Tôi đã sử dụng phép thuật trong một vài tháng nay và tôi rất thích nó. Nhưng một điều tôi vẫn làm trong một thiết bị đầu cuối là hái anh đào.

Một cách đơn giản để làm điều này là gì?

Câu trả lời:


31

Bất cứ nơi nào bạn thấy một cam kết trong bộ đệm Magit, bạn có thể chọn nó bằng cách di chuyển điểm đến đó và sau đó gõ A A. Bạn cũng có thể chọn nhiều cam kết cùng một lúc: chỉ cần chọn một số xác nhận bằng cách sử dụng vùng và sau đó nhấn A A.


45

Phiên bản Magit <= 1.4.2

Nó khá dễ:

  1. Nhập tổng quan magit-status
  2. Kiểm tra (nhấn b b) chi nhánh bạn muốn anh đào chọn.
  3. Thực hiện một phạm vi nhật ký (nhấn l r l) để tìm các cam kết mà bạn muốn chọn anh đào. Ở đây bạn chọn 2 nhánh bạn muốn so sánh.
  4. Di chuyển đến cam kết bạn muốn chọn và nhấn Ađể áp dụng các thay đổi và cũng thực hiện chúng cùng với thông báo cam kết. Nếu bạn nhấn anó sẽ không thực hiện các thay đổi mà chỉ áp dụng chúng.

Bạn không cần phải thực hiện một phạm vi đăng nhập để chọn anh đào. Bất cứ khi nào bạn thấy một bản ghi cam kết, bạn có thể nhấn Ađể anh đào chọn nó.

Phiên bản Magit> = 2.1.0

Sau khi nâng cấp magit lên 2.1, quy trình làm việc sẽ khác. Đối với cả hai phương pháp trước tiên bạn cần phải khởi động magit-status.

Phương pháp A : Cherry Pick thay đổi từng nhánh một

  1. Nhấn lvà sau đó ođể có được một danh sách các chi nhánh khác.
  2. Chọn chi nhánh bạn muốn chọn cherry.
  3. Di chuyển đến cam kết bạn cần và nhấn Atheo sau A.
  4. Dòng trạng thái sẽ cho bạn biết bạn đã chọn cam kết nào

    ví dụ feature/ABC~4

    Nhấn Enterđể áp dụng thay đổi.

Phương pháp B : Cherry Chọn tất cả các thay đổi từ một chi nhánh khác

  1. Nhấn Ađể chọn chế độ chọn cherry.
  2. Nhấn Amột lần nữa để áp dụng và cam kết thay đổi. Nhấn ađể chỉ áp dụng thay đổi.
  3. Chọn một nhánh để anh đào chọn thay đổi từ và nhấn Enter.

Cá nhân tôi thích phương pháp A hơn vì bạn có thể xử lý xung đột hợp nhất tốt hơn.


8

Tôi không sử dụng hái anh đào, nhưng đánh ?trong các magit-statuschương trình y: Cherry. Điều này chạy lệnh magit-cherry, cho phép bạn chọn một đầu và ngược dòng. Có vẻ như đây là những gì bạn muốn.

Bạn có thể gõ C-h r d m Magit RETđể đọc hướng dẫn Magit. Bạn có thể sử dụng C-s cherryvà lặp lại nhấn C-sđể tìm kiếm thông qua hướng dẫn. Có vẻ như thông tin nằm trong phần 23:

Một trong những tiện nghi của gitnó là nó có thể cho bạn biết những cam kết nào đã được sáp nhập ngược dòng nhưng không phải cục bộ và ngược lại. Lệnh phụ của Git cho điều này là cherry(không bị nhầm lẫn với cherry-pick). Magit có hỗ trợ cho việc này bằng cách gọi mặc định magit-cherryràng buộc y.

Sau đó, Magit sẽ yêu cầu bạn sửa đổi ngược dòng (mặc định cho nhánh từ xa hiện đang được theo dõi nếu có) và sửa đổi đầu (mặc định cho nhánh hiện tại) để sử dụng trong so sánh. Sau đó, bạn sẽ thấy một bộ đệm mới trong đó tất cả các xác nhận được liệt kê với một điểm đánh dấu hướng, sửa đổi của chúng và dòng đầu tiên của thông điệp cam kết. Điểm đánh dấu hướng là +biểu thị một cam kết hiện diện ở thượng nguồn nhưng không phải trong đầu hoặc -biểu thị một cam kết hiện diện trong đầu nhưng không phải ở thượng nguồn.

Từ danh sách này, bạn có thể sử dụng các ràng buộc khóa thông thường cho các cam kết riêng lẻ acủa anh đào ( để chọn anh đào mà không cam kết và A tương tự cộng với cam kết tự động). Bộ đệm được làm mới tự động sau mỗi lần chọn anh đào.


1
Khi gọi hướng dẫn Magit, bạn có thể lưu một nét chính bằng cách thực hiện C-h ithay vì C-h r d. Điều này sẽ đưa bạn đến cấp cao nhất của Thông tin trực tiếp.
itjeyd

1
@itsjeyd Nahh, C-h isẽ đưa bạn đến tệp thông tin cuối cùng bạn đã mở, vì vậy nếu tôi nhấn C-h i m, tôi có thể có khả năng nhìn vào một menu các chương trong SICP thay vì một menu của tất cả mọi thứ. Đánh dsau C-h ihoặc C-h rsẽ đảm bảo rằng bạn sẽ ở trong thư mục Thông tin khi trước khi bạn nhấn m.
mẫu

Đó là một mẹo hay, tôi không biết về điều đó! Ngoài ra, hoàn toàn lạc đề: Một phiên bản Thông tin của SICP?! Tôi có thể lấy một bản sao ở đâu? :)
itjeyd

@itsjeyd Tôi giữ nó trong Dropbox của tôi, tôi nghĩ rằng tôi đã nhận được nó từ đây: github.com/webframp/sicp-info
nanny

1
Cảm ơn! Tôi đã kiểm tra MELPA và hóa ra có một gói được xây dựng từ kho lưu trữ đó. Vì vậy, việc cài đặt phiên bản Thông tin của SICP cũng dễ dàng như vậy M-x package-install RET sicp RET:)
itjeyd
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.