2

私はオープンソース プロジェクト用にいくつかのパッチを生成していますが、From: 行は常に me@domain.com です。git send-email を実行する前に、From: 行を me-emaillist@domain.com に手動で編集しています。

  1. これを自動的に行う方法はありますか?
  2. これを行う必要がありますか?私はすでにエンベロープ送信者設定を使用しています。
  3. 差出人アドレスを変更したため、アップストリーム リポジトリの作成者行は「me-emaillist@domain.com」になりますか?

例:

From fab0cf45f10686688a8138f60a09505200cbb2a4 Mon Sep 17 00:00:00 2001
From: John Doe <me-emaillist@domain.com>
Date: Mon, 25 Feb 2013 23:06:23 -0500
Subject: [PATCH] nand: adjust erase/read/write partition/chip size for bad blocks

mvpの答えを検討した後、私の明確な答えは次のとおりです。

  1. いいえ、なぜなら...
  2. いいえ、なぜなら...
  3. git amはい、上流リポジトリで作成者の名前を設定するときに From: 行を使用するため、From: 行はコミットの作成者から取得されます。
4

5 に答える 5

2

git1.8.4 (2013 年 7 月)では、「From フィールド」を設定できるようになりました。

" " ヘッダーを指定された人 (または " " の部分が欠落している場合はコマンドを実行した人) に設定し、必要に応じて元の作成者情報を本文内のヘッダーに移動する " " オプションをgit format-patch学習しました。--from[=whom]From:=whomFrom:

コミット a90804752f6ab2b911882d47fafb6c2b78f447c3を参照してください。

format-patchFromは、「 」アドレスが各パッチの作成者に設定された電子メールを生成します。ただし、電子メールを送信する場合は、作成者の ID を自分のものに置き換え (同じでない場合)、作成者の ID を本文内のヘッダーにバンプします。

通常、これはgit-send-email、電子メールを送信する前に変換を行う によって処理されます。ただし、一部のワークフローでは send-email を使用しない場合があります (例: imap-send、または mbox を非 git MUA にフィードするカスタム スクリプト)。彼らはそれぞれこの機能を自分で実装することができますが、それを正しく行うことは簡単ではありません (ヘッダーの RFC2047 エンコーディングまたは RFC822 引用符を逆にして ID を正規化する必要があります。これは、何年にもわたって send-email で多くのバグを引き起こしてきました)。

このパッチは別のアプローチをとっています: format-patch に " --from" オプションを教えます。これは、電子メールを書き出す際に、ident チェックと in-body ヘッダーを処理します。
このレベルで行うのははるかに簡単で (まだ引用を行っていないため)、format-patch に基づくワークフローで簡単にオンにすることができます。

署名者: Jeff King<peff@peff.net>

次のことができるようになりました。

git format-path --from=...

と:

--from::
--from=<ident>::

各コミット メールのヘッダーで使用identします。 コミットの作成者 ID が提供された とテキスト的に同一でない場合は、メッセージの本文に元の作成者のヘッダーを配置します。 noが指定されている場合は、コミッター ID を使用します。From:
identFrom:
ident

このオプションは、実際に電子メールを送信していて、送信者として自分自身を識別したいが、元の作成者を保持したい場合(およびgit am本文内のヘッダーを正しく取得する場合) にのみ役立つことに注意してください。
この変換は既に処理されていることにも注意してください。git send-email結果を に渡す場合は、このオプションを使用しないでくださいgit send-email


2016 年 8 月更新 (3 年後)

Josh Triplett ( )によるcommit 6bc6b6c (2016 年 8 月 1 日)を参照してください。( 2016 年 8 月 10 日コミット db40a62Junio C Hamanoによってマージされました)joshtriplett
gitster

format-patch:format.fromのデフォルトを指定します--from

これは、 format-patch をデフォルトにすることを好むユーザーに役立ち--from、将来デフォルトを簡単に変更できるようになります。

git configman ページには以下が含まれるようになりました

format.from:

オプションのデフォルト値--fromを format-patch に提供します。
ブール値、または名前と電子メール アドレスを受け入れます。

  • の場合falseformat-patchデフォルトは--no-fromで、パッチ メールの「From:」フィールドでコミット作成者を直接使用します。
  • の場合trueformat-patchデフォルトはで、パッチ メール--fromの " " フィールドでコミッタ ID を使用し、異なる場合はパッチ メールの本文に From:" " フィールドを含めます。From:
  • ブール値以外の値に設定すると、format-patch はコミッター ID の代わりにその値を使用します。

デフォルトはfalseです。


Git 2.26 (2020 年第 1 四半期) では、スペースの管理が改善されていることに注意してください。

commit f696a2bcommit ffbea18commit f447d02commit b6537d8 (2020 年 2 月 11 日) by Jeff King ( peff)を参照してください。
( 2020 年 2 月 17 日にコミット d880c3dJunio C Hamanoによってマージされました)gitster

mailinfo: ヘッダーの空白をもっと自由に

署名者: Jeff King

RFC822 とその仲間は、ヘッダーのコロンの後と値の前に任意の空白を許可します。
すなわち:

Subject:foo
Subject: foo
Subject:  foo

すべてに「foo」という件名があります。ただしmailinfo、正確に 1 つのスペースが必要です。
これは誰も気にしていないようですが、標準が指定するよりもうるさいです。そして、パーサーで任意の空白を簡単に吸収できるので、そうしましょう。

テストは空白が少なすぎる場合と多すぎる場合の両方を対象としていますが、「多すぎる」ケースはすでに正常に機能していることに注意してください (後で値から先頭と末尾の空白を使用するため)。

于 2013-07-17T06:58:06.337 に答える
1

git ID を設定するだけで十分です。

git config --global user.email me@domain.com
git config --global user.name "John Doe"

git リポジトリごとに ID を設定することもできます。その git リポジトリ内でこれらのコマンドを実行し、単純に--globalフラグを省略します。

me-emaillist@domain.com誰かがgit amそれを使用すると、このコミットにはあなたの身元がないため、おそらく使用しないでください。

おそらくこれを行う唯一の理由は、プライマリ アドレスへのスパムを避けるためですが、いずれにせよ、それが公開されればすぐに取得できると思います。

于 2013-02-26T05:23:43.840 に答える
0

別の代わりに特定の電子メール アドレスを使用する別のオプションは、sendmail email aliases formatを使用することgit send-emailです。

Allen Hubbe ( )によるコミット 3169e06 (2015 年 5 月 26 日)を参照してください。( 2015 年 6 月 16 日コミット 412e63fJunio C Hamanoによってマージされました)allenbh
gitster

send-emailsendmail:メール エイリアス形式を追加

send-email にsendmailエイリアス形式でエイリアスを読むように教えます。

<alias>: <address|alias>[, <address|alias>...]

例:

alice: Alice W Land <awol@example.com>
bob: Robert Bobbyton <bob@example.com>
# this is a comment
   # this is also a comment
chloe: chloe@example.com
abgroup: alice, bob
bcgrp: bob, chloe, Other <o@example.com>

ノート:

  • 引用されたエイリアスと引用されたアドレスはサポートされていません。
  • 行継続はサポートされていません。

Git 2.6+ (2015 年第 3 四半期) では、Remi Lespinet ( Awaryn)がその機能を大幅に作り直しました。

" " は、 などgit send-emailを介して与えられた名前に対してエイリアス展開を実行するようになりました。--cccmd

このラウンドには、さらに強化された電子メール アドレス パーサーが付属しています。

コミット fa5b1aa、コミットb1c8a11コミット 1fe9703コミット c46e27aコミット 193d716コミット b5e112dコミット d4cf11cコミット f6f79e5コミット 62089fb、(2015 年 6 月 30 日)、コミット b1c8a11、(2015 年 6 月 30 日)、コミット2、(150) を参照してください。 8d314d7 (2015 年 7 月 7 日)レミ・レスピネット ( Awaryn)による。
( 2015 年 8 月 3 日にコミット 8f50e2eJunio C Hamanoによってマージされました)gitster

于 2015-06-18T14:25:37.660 に答える
0

私(gitバージョン2.17.1)の場合、これはうまくいきました:

git config format.from true

によるとman git config

... true の場合、format-patch はデフォルトで --from になり、パッチ メールの「From:」フィールドでコミッター ID を使用し、異なる場合はパッチ メールの本文に「From:」フィールドを含めます。

于 2018-11-03T18:26:08.300 に答える
0

実行してみてくださいecho 'alias me "John Doe <me-emaillist@domain.com"' >> ~/.gitaliases

于 2013-02-26T05:23:07.137 に答える