回答:
しばらくして、自分で修正するのに十分な時間をどうにかして過ごしました。
これを行うための「すぐに使える」方法は知りません。ただし、ニーズに合わせてmagitを拡張できます。
最初に、私はgerritにプッシュする関数を書きました:
(defun magit-push-to-gerrit ()
(interactive)
(magit-git-command "push origin HEAD:refs/for/master" (magit-toplevel)))
次に、それをプッシュメニューに追加しました。
(transient-append-suffix 'magit-push "p"
'("m" "Push to gerrit" magit-push-to-gerrit))
これらの2つのフォームは私のinitファイルにあります。
以上です!今、私はP mgerritへのプッシュに使用できます。
更新:HEADではなく特定のコミットをプッシュしたい場合は、この関数を使用できます(コメントで参照されているmagit-git-command-topdirでも更新されます)。
(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
:github.com/magit/magit/wiki/…を* If you add additional arguments and/or actions to Magit's popups, then you have to port that to modify the new \"transients\" instead.
参照してください
使用!
:それからすることができます簡単な書き込み、ジェネリックのgitコマンドを使用してpush origin HEAD:refs/for/master
、ほぼ通常通り。
ここには専用のパッケージもありgerrit
ます:https :
//github.com/terranpro/magit-gerrit
ただし、私は個人的には使用していません。そのため、使用方法を正確に知りません。
編集
の最近のバージョンではmagit
、rサブコマンドから明示的なgit refspecを指定できるようになりました。したがって、gerrit
refspec にプッシュするには、次のように使用します。
P r「原点」RET「HEAD:refs / for / master」
けれども、あなたも多くのキーの押下をしなければならないので、これは本当にショートカットはありませんが、それは、あるボックスの利用可能アウト。
git push 'elsewhere'
が、それはブランチの宛先に「refs / heads /」を付加するため、そのままでは機能しないようですgerrit
。
(magit-git-command "push origin HEAD:refs/for/master" (magit-toplevel))
。(magit-git-command-topdir "git push origin HEAD:refs/for/master")
代わりに使用する必要があります。