Tôi đang sử dụng gerrit. Khi tôi muốn thực hiện các cam kết của mình, tôi sử dụng lệnh sau:
git push origin HEAD:refs/for/master
Làm thế nào tôi có thể tạo lại cùng một lệnh bằng cách sử dụng Magit
?
Tôi đang sử dụng gerrit. Khi tôi muốn thực hiện các cam kết của mình, tôi sử dụng lệnh sau:
git push origin HEAD:refs/for/master
Làm thế nào tôi có thể tạo lại cùng một lệnh bằng cách sử dụng Magit
?
Câu trả lời:
Sau một thời gian, tôi đã có đủ thời gian để cố gắng tự sửa nó.
Tôi không biết bất kỳ cách "ngoài luồng" nào để làm điều này; tuy nhiên, bạn có thể mở rộng magit để phù hợp với nhu cầu của bạn.
Đầu tiên, tôi đã viết một chức năng sẽ đẩy đến gerrit:
(defun magit-push-to-gerrit ()
(interactive)
(magit-git-command "push origin HEAD:refs/for/master" (magit-toplevel)))
Tiếp theo, tôi đã thêm nó vào menu đẩy:
(transient-append-suffix 'magit-push "p"
'("m" "Push to gerrit" magit-push-to-gerrit))
Hai hình thức này là trong tập tin init của tôi.
Và đó là nó! Bây giờ tôi có thể sử dụng P mđể đẩy để gerrit.
Cập nhật : Nếu bạn muốn đẩy một cam kết cụ thể chứ không phải CHÍNH, bạn có thể sử dụng chức năng này (cũng được cập nhật với magit-git-lệnh-topdir như được đề cập trong bình luận):
(defun magit-push-to-gerrit (source)
"Push an arbitrary branch or commit to gerrit. The source is read in the minibuffer."
(interactive
(let ((source (magit-read-local-branch-or-commit "Push")))
(list source)))
(magit-git-command-topdir (concat "git push origin " source ":refs/for/master")))
magit-obsolete.el
: * If you add additional arguments and/or actions to Magit's popups, then you have to port that to modify the new \"transients\" instead.
Xem github.com/magit/magit/wiki/ từ
Sử dụng !
để sử dụng lệnh git chung, sau đó bạn có thể viết đơn giản: push origin HEAD:refs/for/master
gần như bình thường.
Ngoài ra còn có một gói dành riêng cho gerrit
đây:
https://github.com/terranpro/magit-gerrit
Tuy nhiên tôi chưa sử dụng nó một cách cá nhân, vì vậy không biết chính xác cách sử dụng nó.
BIÊN TẬP
Trong một phiên bản gần đây magit
, giờ đây có thể chỉ định một refspec rõ ràng từ rtiểu ban. Vì vậy, để đẩy tới gerrit
refspec, chỉ cần sử dụng:
P r"nguồn gốc" RET"ĐẦU: refs / for / master"
Mặc dù, đây không phải thực sự là một phím tắt vì bạn phải làm nhiều hơn key-ép, nhưng nó là hiện có sẵn hộp.
git push 'elsewhere'
nhưng điều đó đặt trước 'refs / Heads /' cho điểm đến chi nhánh, do đó dường như không hoạt động gerrit
.
(magit-git-command "push origin HEAD:refs/for/master" (magit-toplevel))
. Bạn sẽ muốn sử dụng(magit-git-command-topdir "git push origin HEAD:refs/for/master")
thay thế.