web-dev-qa-db-ja.com

Gerritがそれ自体でブランチを作成できないのはなぜですか?

この回答私自身の質問 に続いて、簡単な(そう願っています)質問があります。

特定のブランチをプッシュしている場合、必要なすべての参照が適切に設定されています。

git checkout 82-blah-blah
git Push Origin HEAD:refs/for/82-blah-blah

なぜ私はいつも得るのですか:

! [remote rejected] HEAD -> refs/for/82-blah-blah (branch 82-blah-blah not found)

常にGerritのUIに移動して、そのブランチを手動で作成する必要がありますか?

Gerritが単純に自動化できるのは明らかなステップではありませんか?それとも私は何かが足りないのですか?

11
trejder

この機能 実装されました ごく最近、 Gerrit v2.9 で利用可能になります。

3
mvp

受け入れられた答えは、ユーザーがSSHを使用して分岐を作成できるようにする機能を参照しています。追加されるのは CreateBranchCommand だけです。元の issue request は、実際には@trejderが必要とするものを参照している可能性がありますが、実装はSSHコマンドによるブランチの作成にすぎません。

Create-referenceの権利があれば、ref/for/new-branchにプッシュできるという印象を受けましたが、間違っていたので、テストしただけで機能しません。それはあなたが新しいブランチを作成することを可能にするだけですが、それらに直接プッシュします。

それを成し遂げるための最速の方法は次のとおりです。

git checkout master
git Push Origin HEAD:new-branch
git checkout new-branch
git Push Origin HEAD:/refs/for/new-branch
24
uncletall

この単純なbashスクリプトを使用して、新しいブランチを作成し、gerritにプッシュします。使用法:Branch_nameとCommitIdは2つの入力が必要です

!/ bin/bash

read -p "新しいブランチ名を入力してください:" Branch_Name

-p "Enter CommitID:" CommitIDを読み取ります

git fetch --all

gitブランチ$ Branch_Name $ CommitID

git Push Origin $ Branch_Name:$ Branch_Name

git checkout $ Branch_Name

git branch --set-upstream-to = Origin/$ Branch_Name $ Branch_Name

1
kalaivani

新しいブランチが「myNewBranch」であるとしましょう

git checkout master
git Push Origin HEAD:myNewBranch

新しいコミットをプッシュするためにいくつかの変更をコミットした後:

git Push Origin myNewBranch

私のために働きます。だが..

その後、同じコミットをマスターにプッシュできない理由がわからない、またはその逆。マスターでレビューするためにPRを開いた場合、同じコミットを「myNewBranch」にプッシュできません。そのためには、PRを放棄してマスターし、新しいローカルブランチへのコミットを選択してから、リモートの「myNewBranch」にプッシュする必要がありました。

幸運を!

0