2013-02-22 13 views
7

クライアントのgitバージョンは1.7.0.4です。git add format.signoffを使用してサインオフした行を無効にする

メッセージをコミットするときに、コミットログメッセージの最後に自動的に「サインオフオフ」行を追加します。

  1. 私はgit config --global format.signoff trueを設定し、git commit -m "modify something"を実行して、私は「署名オフ・バイ」を参照してくださいませんgit logインチ
  2. git commit -m -s "modify something"を使用すると、git logに「サインオフ」が表示されます。

誰でも手助けできますか?

+0

誰も知っていますか? – Venus

答えて

4

Git 2.14.x/2.15用の更新:「Git - Detect if commit is signed off programmatically」で述べたように、Signed-off-By行のコミットメッセージの予告編を解析することができます。

git interpret-trailersは、」それが簡単にスクリプトがコミットログメッセージから既存のトレーラ行をつかむできるようにすること「--parse」といくつかの他のオプションを教えてきました。 git interpret-trailersを使用するcommit-msg client-side hookため

参照stefanctさんanswer


オリジナルの答え(2013)

format.signoffは(例えば、in this patchのために、示されているように)about patchです:

format.signoff 

あなたは-sを有効にすることができますブール値/ - -signoffオプションのformat-patchデフォルトで

git commit -sとは関係ありません。言い換えれば

、あなたはすべてのコミットサインオフする必要はありませんが、あなたは他の人が(「git: submitting patches」のように)使用するためのパッチ、としてそれらを公開しているときにあなたはそれらに署名する必要があります。

Signed-of-byの正確な意味は、「What is the Sign Off feature in Git for?」を参照してください。

7

あなたは、いくつかの空白行と締結し、オフすることにより、このようなテキストを含むファイルを作成することによって、プロジェクトのデフォルトでサインオフ(たとえば、「〜/ MYPROJECT/gitの-テンプレート」)することができます:

Signed-off-by: Your Name <[email protected]> 

gitをコミットテンプレートとして使用するように設定します。たとえば:

git config commit.template ~/MYPROJECT/git-template 

は、プロジェクト必ずドキュメントプロジェクトのための手段でオフに署名したものをどこかしてください。あなたの投稿にコピーできるテキストがいくつかあります。mdファイル:

すべての投稿(プルリクエストを含む)は、 開発者証明書(DCO)バージョン1.1に同意する必要があります。 これは、Linuxカーネル開発者 によって作成され、使用されたものと全く同じもので、http://developercertificate.org/に掲載されています。 これは、彼または彼女が にプロジェクトに含めるパッチを提出する権利を持つ開発者の証明書です。 すべてのパッチ に「締め切り署名」タグを含めてください(このタグは、DCOに同意したことを確認する従来の方法です)。

3

フックとgit-interpret-trailersコマンドを使用して、すでにサインオフされていないコミットを自動的に簡単にサインオフする簡単な方法があります。 gitの次期バージョン2.15では、既存のサインオフ(値/作者が何であるかにかかわらず)を自明にチェックし、まだ存在しない場合は追加します。 2017年10月現在、任意のgitリリースでではなくではありません(ただし、masterブランチにあります)!

.git/hooks/prepare-commit-msgまたは.git/hooks/commit-msg(相違についてはhereを参照)を次のように保存して実行可能にします。

#!/bin/sh 

NAME=$(git config user.name) 
EMAIL=$(git config user.email) 

if [ -z "$NAME" ]; then 
    echo "empty git config user.name" 
    exit 1 
fi 

if [ -z "$EMAIL" ]; then 
    echo "empty git config user.email" 
    exit 1 
fi 

git interpret-trailers --if-exists doNothing --trailer \ 
    "Signed-off-by: $NAME <$EMAIL>" \ 
    --in-place "$1" 
+0

うまくやった。 +1。私はあなたの答えをよりわかりやすくするために参考にしています。https://stackoverflow.com/a/41361273/6309ここで 'git interpret-trailers'を紹介しました。 – VonC

関連する問題