2017-01-27 14 views
0

コミュニティrebasedブランチを私たちのgerritにプッシュする際に助けが必要です。上流のマスターを持つGerrit rebaseローカルブランチ

私たちは、コミュニティプロジェクトからフォークアウトされたプロジェクトを持っています。以前はゲリットを使わなかったので、リベースとプッシュは簡単でした。しかし、絵の中のゲリットで、物事は私のために混乱しています。

フォレストされたリリースブランチを上流リリースブランチでリベースする必要があります。ここで

が、私はこの後、今

git checkout -b local_zoomba1 remotes/origin/zoomba1 
git remote add upstream <upstream git repo> 
git fetch upstream 
git rebase remotes/upstream/stable/zoomba1 

までやったことで、私は解決し、いくつかの競合がありました。空が

git commit --allow-empty -m "Rebased with community zoomba1 release" 

をリベースマークするためにコミット追加今の楽しみは始まった私はgitの見直しをしたときに:)

は、それはコミッタメールIDは、私のIDと一致しないというエラーが発生しました。だから私は「フォージコミッタ」と「フォージ著者」に自分自身に許可を与えた

は、今ではすべてのコミットを示したが、最終的には文句:

You are about to submit multiple commits. This is expected if you are 
submitting a commit that is dependent on one or more in-review 
commits. Otherwise you should consider squashing your changes 
into one commit before submitting. 

The outstanding commits are: 
... 
... 
Type 'yes' to confirm, other to cancel: yes 
remote: Processing changes: refs: 1, done 
remote: ERROR: missing Change-Id in commit message footer 
remote: 
remote: Hint: To automatically insert Change-Id, install the hook: 
... 
remote: And then amend the commit: 
remote: git commit --amend 
remote: 
  • 勿論変更-IDのなしの多くのコミットが(あります「マージ」コミットであるもの)。私は戻っていくつかのランダムな変更IDをそれらに割り当てることはできません。私はここでどのように進めるべきですか?

  • また、コミュニティから来る未知の変更IDに遭遇したときにゲリットがどのように反応するかを理解する必要がありますか?

  • これはすべて1つの大きなコミットになるのでしょうか、これは方法ではありませんか?

  • gerritをバイパスしてgitに直接プッシュすることはできますか?

答えて

1

は、次のことができ、もちろん、スカッシュは、すべてのコミュニティはただ一つの大きなでコミットコミットし、それに変更-IDを置くが、これを行うための最善のことではありません。この場合、すべてのコミュニティコミットを確認する必要はないと思いますか?この作業は理にかなっていません。だから、最良の方法は、Gerritをバイパスしてブランチにまっすぐに進めることです。これを行う方法?あなたは「プッシュ」にアクセス権を許可している必要があり

1)あなたはレフリー/ヘッド/ BRANCH」にプッシュする必要がある「レフリー/ヘッド/ *」参照

2)のカテゴリーを「マージプッシュコミット」 "代わりに" refs/for/BRANCH "

+0

はい、私はそれらを見直すことはしません。私はあなたが言及した許可を試すことができます。しかし、/ heads/for/branchのことは理解できませんでした。また、プッシュコマンドはどのように見えますか? – mittal

+0

さて、私は "refs/heads/*"の両方の許可を得ました。しかし、まだ "refs/for/BRANCH"ではなく、 "refs/heads/BRANCH"の意味が分かりません。これはうまく動作しないでしょうか?git push origin local_zoomba1:zoomba1' – mittal

+0

これを使って--dry-runを試みました。それは失敗します:('#git push --dry-origin origin local_zoomba1:zoomba1 [拒否] local_zoomba1 - > zoomba1(早送りではない) エラー:いくつかの参照をプッシュするのに失敗しました... ヒント:押し込まれた枝の先端がリモートの背後にあるために拒否されました。 ヒント:相手。このブランチをチェックし、リモートの変更をマージする ヒント:(例えば 'git pull')をもう一度押す。 ヒント:詳しくは、 'git push --help'の 'fast-forwardsに関する注意'を参照してください。 – mittal

関連する問題