Ich benutze Gerrit. Wenn ich meine Commits verschieben möchte, verwende ich den folgenden Befehl:
git push origin HEAD:refs/for/master
Wie kann ich denselben Befehl mit neu erstellen Magit
?
Ich benutze Gerrit. Wenn ich meine Commits verschieben möchte, verwende ich den folgenden Befehl:
git push origin HEAD:refs/for/master
Wie kann ich denselben Befehl mit neu erstellen Magit
?
Antworten:
Nach einer Weile hatte ich genug Zeit, um es selbst zu beheben.
Ich kenne keinen "out-of-the-box" Weg, dies zu tun; Sie können Magit jedoch erweitern, um es Ihren Anforderungen anzupassen.
Erstens habe ich eine Funktion geschrieben, die zu Gerrit führen würde:
(defun magit-push-to-gerrit ()
(interactive)
(magit-git-command "push origin HEAD:refs/for/master" (magit-toplevel)))
Als nächstes habe ich es hinzugefügt, um das Menü zu drücken:
(transient-append-suffix 'magit-push "p"
'("m" "Push to gerrit" magit-push-to-gerrit))
Diese beiden Formulare befinden sich in meiner Init-Datei.
Und das ist es! Jetzt kann ich P mzum Gerrit pushen.
Update : Wenn Sie ein bestimmtes Commit und nicht HEAD pushen möchten, können Sie diese Funktion verwenden (auch aktualisiert mit magit-git-command-topdir, wie im Kommentar angegeben):
(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.
Siehe github.com/magit/magit/wiki/…
Verwenden Sie !
, um einen generischen git-Befehl zu verwenden, dann können Sie einfach schreiben: push origin HEAD:refs/for/master
fast wie üblich.
Hier gibt es auch ein spezielles Paket gerrit
:
https://github.com/terranpro/magit-gerrit
Ich habe es jedoch nicht persönlich verwendet, weiß also nicht genau, wie ich es verwenden soll.
BEARBEITEN
In einer neueren Version von magit
ist es jetzt möglich, eine explizite Git-Referenz aus dem rUnterbefehl anzugeben . gerrit
Um zur Referenz zu gelangen, verwenden Sie einfach:
P r"origin" RET"HEAD: refs / for / master"
Dies ist zwar keine wirkliche Abkürzung, da Sie noch mehr Tastendrücke ausführen müssen , aber sie ist sofort verfügbar.
git push 'elsewhere'
aber das stellt 'refs / Heads /' vor das Zweigstellenziel, so dass dies nicht sofort funktioniert gerrit
.
(magit-git-command "push origin HEAD:refs/for/master" (magit-toplevel))
. Sie möchten(magit-git-command-topdir "git push origin HEAD:refs/for/master")
stattdessen verwenden.