2013-02-22 229 views
7

我的客戶端git版本是1.7.0.4。git add使用format.signoff不行的Signed-off-by行不起作用

我想提交一條消息時,在提交日誌消息的末尾爲提交者自動添加一個「Signed-off-by」行。

  1. 當我設置git config --global format.signoff true,並運行git commit -m "modify something",我看到git log沒有 「參團的off-by」。
  2. 如果我使用git commit -m -s "modify something",則「簽名關閉」確實顯示在git log中。

任何人都可以幫忙嗎?

+0

還有人知道嗎? – Venus 2013-02-22 06:40:25

回答

4

更新爲Git 2.14.x/2.15:正如我在「Git - Detect if commit is signed off programmatically」中所述,您將能夠解析Signed-off-By行的提交消息預告片。

git interpret-trailers」已經教了「--parse」和其他幾個選項,使其更容易爲腳本搶從提交日誌信息中現有的拖車行。的answercommit-msg client-side hook它將使用git interpret-trailers

stefanct


原來的答覆(2013年)

format.signoffabout patch(如圖所示,例如,in this 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的模板」),它包含了一些空行和簽名-OFF-由文字是這樣的:

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

然後配置git使用它作爲提交模板。例如:

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

確保您的項目文件這個項目什麼地方簽訂過逐手段。這裏有一些文字可以複製到您的CONTRIBUTING中。md文件:

所有貢獻(包括拉取請求)必須同意 開發者證書源(DCO)版本1.1。 這與Linux內核開發人員 創建和使用的完全相同,並在http://developercertificate.org/上發佈。 這是一個開發者的認證,他或她有權 提交補丁包含在項目中。 只需提交一份文稿就意味着本協議,但是,請在每個補丁 (此標籤是確認您同意DCO的常規方式)中包含「簽名關閉」標籤 。

3

現在有一種簡單的方法可以通過使用鉤子和git-interpret-trailers命令自動簽出尚未簽名的任何提交。在即將推出的2.15版git中,該命令允許輕鬆地檢查現有的簽名(無論其值/作者是什麼),並在沒有簽名時添加您的簽名。截至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 2017-10-08 06:45:25