この回答 と 私自身の質問 に続いて、簡単な(そう願っています)質問があります。
特定のブランチをプッシュしている場合、必要なすべての参照が適切に設定されています。
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が単純に自動化できるのは明らかなステップではありませんか?それとも私は何かが足りないのですか?
この機能 実装されました ごく最近、 Gerrit v2.9 で利用可能になります。
受け入れられた答えは、ユーザーが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
この単純なbashスクリプトを使用して、新しいブランチを作成し、gerritにプッシュします。使用法:Branch_nameとCommitIdは2つの入力が必要です
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
新しいブランチが「myNewBranch」であるとしましょう
git checkout master
git Push Origin HEAD:myNewBranch
新しいコミットをプッシュするためにいくつかの変更をコミットした後:
git Push Origin myNewBranch
私のために働きます。だが..
その後、同じコミットをマスターにプッシュできない理由がわからない、またはその逆。マスターでレビューするためにPRを開いた場合、同じコミットを「myNewBranch」にプッシュできません。そのためには、PRを放棄してマスターし、新しいローカルブランチへのコミットを選択してから、リモートの「myNewBranch」にプッシュする必要がありました。
幸運を!