一. 先配置git send-mail 的 smtp伺服器:
1. 安裝git-email:
# apt-
get install git git-core git-email
修改gitconfig檔案:vim ~/.gitconfig
[color]ui = auto
[commit]
template = ~/.commit_template
[user]
name = ***
email = ***@***.com
[alias]
pretty = log --branches --remotes --tags --graph --oneline
--decorate
[sendemail]
smtpencryption = tls
smtpserver = smtp.gmail.com
smtpuser = *****.****@gmail.com
smtpserverport = 587
smtppass = abcdef
suppresscc = all //will suppress all auto cc values
confirm = always
#to =
*****.****@gmail.com
//specify the primary recipient
#cc =
//cc list
2. then editthe
.git/hooks/pre-commit
fileto contain only the following two lines:
#!/bin/shexec git diff --cached | scripts/checkpatch.pl --no-signoff - || true
二. 好了,下面就是提交的步驟了。
1. 按功能分類提交commit ,提交之前先執行指令碼 ./scripts/cleanfile xx.
1)加-s選項,自動signed-off-by.
2) git commit--amend --author " *** zhang "(新增實際的author,如果author是本人,則不要寫)
3)commit message第一行要是patch的主題(包括patch的從屬子系統,和概述),第二行是patch的詳細描述。
4)如果想修改其中的乙個commitmessage:
a)gitformat-patch -n --cover-letter(有必要的話,將測試結果和基於的主線版本寫在0000-cover-letter.patch中的詳細描述中)
b)gitreset到那個commit,如要更改或新增某個檔案,git add; 如要刪除某個commit的檔案,(git resethead^ file),然後 commit --amend
2. 生成patch:
1)git format-patch -2 --cover-letter//2表示從head的commit開始,向前生成兩個commit的patch。--cover-letter會生成乙個0000-cover-letter.patch,格式和commitmessage類似,第一行是patchset的主題,第二行描述這組patchset的詳細資訊,它就是郵件中的【patch0/n】。
2)git format-patch -numbered --cover-letter--subject-prefix="patch v2" (如果不是第一版
patch需要新增版本號,以v2為例)
3. 檢查patch:
./scripts/checkpatch.pl0001-nfs-add-a-pr_info.patch
(不用檢查0000-cover-letter.patch
)4. 發郵件列表:
git send-email *.patch
如果想要編輯patch郵件內容,加--annotate選項。
$ git send-email*.patch
/tmp/59yd80mjvb/0000-cover-letter.patch
/tmp/59yd80mjvb/0001-clone-patch-test-001.patch
/tmp/59yd80mjvb/0002-revised-text.patch
3 files to edit
zh**.****@gmail.com//輸入發件人郵箱
emails will be sent from: [email protected]
who should the emails be sent to?
z***@gmail.com //輸入收件人郵箱
message-id to be used as in-reply-to for the first email?
for_test//隨便輸入乙個id
附:標準的patch格式
the canonical patch subject line is:
subject: [patch 001/123] subsystem: summary phrase
the canonical patch message body contains the following:
- a "from" line specifying the patch author.
- an empty line.
- the body of the explanation, which will be copied to the
permanent changelog to describe this patch.
- the "signed-off-by:" lines, described above, which will
also go in the changelog.
- a marker line containing simply "---".
- any additional comments not suitable for the changelog.
- the actual patch (diff output).
參考:
dede 提交表單 傳送郵件
第一步 要到dede後台設定好郵箱的資料,並且確定所用的郵箱開啟了smtp 第二步 找到 plus diy.php在 cce query insert into id ifcheck addvar values null,0 addvalue cce 下加入以下 cce mailtitle 提交表單...
MySQLdump備份並傳送郵件
概述 文件中使用smtp協議,利用qq郵箱傳送郵件,其中客戶端授權碼是在開啟qq郵箱smtp服務是官方給予的,所以要牢記!1 配置smtp linux yum install y mailx 修改配置檔案 vi etc mail.rc 在末尾追加如下內容並儲存 set from x qq.com 設...
如何利用git製作和提交patch
不過在git中,我們沒有必要直接使用diff和patch來做補丁,這樣做既危險又麻煩。git提供了兩種簡單的patch方案。一是用git diff生成的標準patch,二是git format patch生成的git專用patch 我們可以首先用git diff製作乙個patch。本文示例的工作目錄...