2

gitに含まれているpost-receive-emailスクリプトを使用しています。(ソースはここにあります。)それは問題なく動作しますが、プッシュされたコミットの作成者から各電子メールを送信する必要があります。どうすればいいのですか?

現在、受信後のファイルは次のようになっています。差出人のメールアドレスをカスタマイズしたいと思います。

#!/bin/sh

export USER_EMAIL=from-email-address@blah.com
$(dirname $0)/post-receive-email
4

3 に答える 3

8

git logメールアドレスを引き出すために使用します。

たとえば、post-receive次のようになります。

#!/bin/sh

# Use the email address of the author of the last commit.
export USER_EMAIL=$(git log -1 --format=format:%ae HEAD)
$(dirname $0)/post-receive-email

たとえば、人々が gmail または個人のドメイン アドレスを使用しているが、それらを単一のドメインにマッピングしたい場合は、電子メール アドレスをマッピングすることもできます。

#!/bin/sh

# Use the mapped email address (specified in .mailmap) of the author of the last commit.
export USER_EMAIL=$(git log -1 --format=format:%aE HEAD)
$(dirname $0)/post-receive-email

詳しくは.mailmap こちらをご覧ください。

于 2010-03-14T22:38:24.040 に答える
1

ブランチ (Debian システムで使用) で行われたコミットを正しく処理するには、次のほうがよい場合があります。

#! /bin/sh
git config hooks.envelopesender $(git log -all -1 --pretty=format:%ae)
. /usr/share/git-core/contrib/hooks/post-receive-email

git log --all代わりにgit log HEAD、すべてのブランチで最新のコミットを使用します。おそらく、通知するのに適切なものです。

これgit config hooks.envelopesenderは、上記のバリアントの別のものに置き換えることができます。YMMV。

于 2014-02-25T15:57:41.723 に答える
1

http://github.com/jtek/git-hook-update-notify-emailのような別のフック システムを試すことができます

于 2010-03-14T22:07:02.803 に答える