私は設定Gerritしていますが、書くのは避けたいです:
git push gerrit HEAD:refs/for/master
私は書きたい:
git push review
変更は可能だと確信しています.git/configが、機能させることはできません。
review と noreview という 2 つの異なるプッシュ タイプを設定しました。
レビュー:
git config remote.review.pushurl ssh://<GERRIT_HOST>:29418/<PROJECT_PATH>.git
git config remote.review.push refs/heads/*:refs/for/*
git push review # this will push your current branch up for review
レビューをバイパスするには:
git config remote.noreview.pushurl ssh://<GERRIT_HOST>:29418/<PROJECT_PATH>.git
git config remote.noreview.push refs/heads/*
git push noreview # this will push your current branch up, bypassing review
レビューをバイパスするために、プロジェクト所有者/Gerrit 管理者が行う必要がある Gerrit プロジェクトの変更がいくつかあることに注意してください。refs/* のプロジェクトに「プッシュ」権限を追加する必要があると思います(レビューのバイパスを許可するブランチについて具体的に理解している場合を除く)。ただし、レビューの場合、投稿に必要な権限は既に設定されています。言い換えれば、あなたの
git push gerrit HEAD:refs/for/master
上記の「レビュー」部分は、他に何も変更せずに同様に機能するはずです。
最善の方法は、エイリアス内の Git スクリプトレットです。このようなものは「上流」ブランチに基づいて機能しますが、これを少し整理したいと思います。
[alias]
pub = "!f() { git push -u ${1:-origin} HEAD:`git config branch.$(git name-rev --name-only HEAD).merge | sed -e 's@refs/heads/@refs/for/@'`; }; f"
このようにして、次のように入力するだけです。
git pub
そして、それはあなたが入力したのと同じです:
git push -u origin HEAD:refs/for/master
また
git push -u origin HEAD:refs/for/myremote-branch
これに対する唯一の要件は、Windows 上の Git Bash シェル、または多くの Linux シェルの 1 つとのみ互換性があることです。
bash エイリアスを作成しないのはなぜですか?
alias review="git push gerrit HEAD:refs/for/master"
これで、次のように入力できます。
review
複数の gerrit ブランチで作業したい場合は、私の bash ヘルパーを確認してください: https://github.com/tomwys/gerrit-bash-commands
git-reviewにも興味があるかもしれません。これは、次のpushものを提供するだけでなく、
git review
...だけでなく、次のようなこともできます。
git review branchname
詳細については、上記のリンクの使用セクションを確認してください。
たぶんあなたが探しているものと正確に一致しないかもしれませんが、あなたが:
gerritをreview(でgit remote rename gerrit review)に変更します。git config push.default tracking、 とgit config branch.master.merge refs/for/master、そうすればgit push review、あなたのマスターはrefs/for/mastergerritにプッシュされます。
そして、ちなみに、もしあなたがそうならgit config branch.master.remote review、あなたはただgit push同じことを得ることができます。
また、refs/heads/ のブランチへの直接プッシュを許可したい場合は、gerrit Web GUI に権限を追加するだけです:
あなたは終わった。
gerrit を介して master ブランチのみにプッシュしたい場合は、以下を追加します。.git\config
[remote "review"]
push = HEAD:refs/for/master
pushurl = ssh://GERRIT_URL:29418/PROJECT_NAME
またはプロジェクトディレクトリで実行
git config remote.review.push HEAD:refs/for/master
git config remote.review.pushurl ssh://GERRIT_URL:29418/PROJECT_NAME
次に、使用できます
git push review
Gerrit にプッシュします。この方法を使用すると、任意のローカル ブランチからプッシュでき、データは常にマスター ブランチに送られます。