25

私は設定Gerritしていますが、書くのは避けたいです:

git push gerrit HEAD:refs/for/master

私は書きたい:

git push review

変更は可能だと確信しています.git/configが、機能させることはできません。

4

8 に答える 8

26

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

上記の「レビュー」部分は、他に何も変更せずに同様に機能するはずです。

于 2012-01-02T16:50:52.587 に答える
4

最善の方法は、エイリアス内の Git スクリプトレットです。このようなものは「上流」ブランチに基づいて機能しますが、これを少し整理したいと思います。

~/.gitconfig

[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 つとのみ互換性があることです。

于 2012-01-04T18:40:17.763 に答える
4

bash エイリアスを作成しないのはなぜですか?

alias review="git push gerrit HEAD:refs/for/master"

これで、次のように入力できます。

review

複数の gerrit ブランチで作業したい場合は、私の bash ヘルパーを確認してください: https://github.com/tomwys/gerrit-bash-commands

于 2011-12-05T22:11:17.257 に答える
3

git-reviewにも興味があるかもしれません。これは、次のpushものを提供するだけでなく、

git review

...だけでなく、次のようなこともできます。

git review branchname

詳細については、上記のリンクの使用セクションを確認してください。

于 2013-12-06T18:55:39.823 に答える
1

たぶんあなたが探しているものと正確に一致しないかもしれませんが、あなたが:

  1. 名前gerritreview(でgit remote rename gerrit review)に変更します。
  2. git config push.default tracking、 と
  3. git config branch.master.merge refs/for/master

そうすればgit push review、あなたのマスターはrefs/for/mastergerritにプッシュされます。

そして、ちなみに、もしあなたがそうならgit config branch.master.remote review、あなたはただgit push同じことを得ることができます。

于 2011-09-15T01:42:33.620 に答える
1

また、refs/heads/ のブランチへの直接プッシュを許可したい場合は、gerrit Web GUI に権限を追加するだけです:

  1. プロジェクトのプロパティを開き、
  2. アクセスを選択し、
  3. 参照を追加、
  4. refs/heads/*
  5. 「押す」を選択
  6. グループ名を入力し、
  7. refs/heads/*
  8. 保存。

あなたは終わった。

于 2012-08-20T17:25:26.020 に答える
0

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 にプッシュします。この方法を使用すると、任意のローカル ブランチからプッシュでき、データは常にマスター ブランチに送られます。

于 2015-11-02T10:56:29.507 に答える