2017-05-03 3 views
2

最初に、私はgit-guruではなく、git-newbieでもないと告白させてください。我々はgerritがインストールされていると私はいくつかの時間repoに変更をコミットすることができます。Git Gerritがリモートで拒否されました "コミットメッセージフッタのChange-Idがありません"

  1. git add file.txt

    git add file2.txt .....ので

  2. git commit -m"My awesome commit message"
  3. git push origin master:refs/for/master

にこれは10のうち9が動作します:ここで私は次の手順であります私は "コミットメッセージのフッターでChange-Idが見つからない"というメッセージが表示される私がコミットメッセージがそこにあることがわかります。

なぜ私は問題が発生しているのか理解できないため、これは私が怒ったところです。現在のコミット--amendは、メッセージを上端、空白行、そしてChange-Id:を含む行に表示します。その後、別の空白行とその下のコメント付きの行だけが表示されます(これは.... gitによって追加されます)

これを修正するにはどうしたらいいですか?私はそれが私の部分の知識不足であることを認める - 100%

これは私が後に得るものです:Gitは--amendコミット: enter image description here

+0

これはちょっと迷惑なことです...私のコミットメッセージの下に空白行があり、もう1つはChange-Idの下にあります。 –

+0

いいえ...これはまったく正しい...これは動作する方法です。 –

+0

あなたはUbuntuでは '/ usr/share/git-core/templates/hooks'にこのコミットメッセージをコピーすることができ、'/mingw64/share/git-core/templates/hooks'またはWindowsの場合は/ mingw32/share/git-core/templates/hooksです。したがって、git repoをクローン化またはinitするたびに、このフックを現在のレポに自動的にデプロイすることができます。 – ElpieKay

答えて

1

これはヘリット

の要件であると思われます

プッシュされたコミットのコミットメッセージにフッタの 変更IDが含まれていない場合、 はコミットに常に変更IDが必要なメッセージ を要求するように設定されています。 (最後の段落)。

このエラーは、さまざまな理由で起こることがあります。

1. missing Change-Id in the commit message 

2. Change-Id is contained in the commit message but not in the last paragraph 

Missing Change-Id in commit message footer issue

+0

これはGerritの問題ではありません...これはGerritの動作とまったく同じです。 –

+0

私が言ったことは、それはgit自体とは関係がないということでした。 – hspandher

+0

申し訳ありませんが、私はあなたを理解していません。 –

1

ヘリットは変更-IDラインは、コミットメッセージの最後の段落に配置しなければならないことを要求しています。

Change-Idの後にいくつかの行がある理由を理解する必要があります。あなたがコミットするときに実行されているフックはありますか?

UPDATE:

あり、あなたのコミットメッセージと間違って何もない:変更-IDラインがコミット-MSGフックによって自動的に追加された

  1. が、それは正しいです。

  2. 空白行は、それがコメント行は、Gitのものです変更-ID

  3. からあなたのメッセージを分離するために自動的に追加されました...あまりにもOKです...ちょうど注意を払う:「行で始まります'#'は無視されます。ただ無視してください。

あなたが保存した後

あなたの実行にコミット:

git log 

あなたのコミットを確認するには。

だから問題は何ですか?なぜGerritが「missing Change-Id」を報告しているのですか?

おそらく問題は最後のコミットではないからです!おそらく問題(Change-Idの欠如)は親のコミットにあります。 "git log"コマンドを実行し、Change-Idなしで新しいコミットを探すためにコミット履歴を調べます。

+0

私は戻ってgit commit --amendを入力すると、Change-Idが表示されるのでフックが実行されたと思います。 –

+0

はい。 Change-Idを手動で追加しない場合は、Change-Idを自動的に追加しているリポジトリに.git/hooks/commit-msgフックがインストールされています(これをチェックすることができます)。 「Change-Idの後にいくつかの行がある理由を理解する必要がある」と言いました。なぜなら、何回Change-Idが正しく生成され、何回か「奇妙な」行が最後に追加されるのはなぜですか?あなたの質問にChange-Idの後に余分な行があるコミットメッセージの例を追加してください。 –

+0

元の質問に追加されました。私はChange-Idの後のすべてを削除しようとしましたが、それはうまくいきませんでした。私が従った手順:1:git add 2:git commit 3:git push origin master:refs/for/master 次にメッセージが表示されます。私はgit commitを行います。変更IDは運がない。私がchange-Idを削除しても、それは助けにはなりませんが、新しいChange-Idが作成されます。 –