2

ソース コードのリポジトリとして git を使用するオープン ソース プロジェクトの開発に貢献しています。

ソース コードにいくつかの変更を加え、多くのローカル コミットを行った後、署名 (電子メール アドレスと私の名前) を含む各コミットのパッチを生成し、電子メールでgit send-emailオープン ソース プロジェクトのメンテナに送信したいと考えています。

どうすればいいですか?

4

1 に答える 1

1

1) git リポジトリからソース コードをダウンロードします。

git clone git://address.of.repository/project/ /folder/path/on/my/computer

2) プロジェクトに git ブランチを作成します。このブランチはすべてのローカル コミットを継続します

git checkout -b <private_branch_name>

3) git commit 署名用に電子メール アドレスと名前を設定します。

git config --global user.name "Your Name"
git config --global user.email you@example.com

これを行った後、このコミットに使用される ID を次のように修正できます。

git commit --amend --reset-author

4) ソースコードに変更を加えます。プロジェクトに新しいファイル/フォルダーを追加できます。

各変更は、ローカルで単独でコミットできます。

5) 変更をコミットする前に。新しいファイル/フォルダーをローカルの git リポジトリに追加する必要があります。

ソースコードのプロジェクトフォルダーの下

git add <Newfolder>
git add <Newfile>

6) 次に、ローカルで変更をコミットします。

ソースコードのプロジェクトフォルダーの下

git commit -a

これにより、interactif ウィンドウが開きます

コミットが編集されたファイルと新しいファイルを次の場所で検出したことを確認できます。

# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       modified:   bin/Makefile.am
#       modified:   configure.ac
#       new file:   src/new.c

のウィンドウの下で、commit -a変更のコメントを入力する必要があります

Ctrl+ O( WriteOut) でコミットを保存するEnterと、コミットが保存されます

+ (終了)commit -aでウィンドウを終了しますCtrlX

注: eamil 経由で送信するパッチ ファイルで電子メールの件名と電子メールのコアを取得するには、コメントの間に空白行を入れる必要があります。

7) 変更ごとにすべてのコミットを行った後、次のコマンドを使用して、コミットごとに個別のパッチを生成できます。

ソースコードのプロジェクトフォルダーの下

 git format-patch --cover-letter -M master -o ../outgoing/

これにより、コミットごとにパッチ ファイルが生成されます。フォルダの送信を元に戻します。

送信フォルダーに生成されたファイルは、メールの件名とメールのコアを含むレターと、レターに同封されたパッチです。

件名 の手紙があることを確認できます[PATCH 00/25]。この手紙には、件名を含む他の手紙パッチの要約が含まれています[PATCH 01/25] [PATCH 02/25] [PATCH 03/25]...

ファイルを編集することを忘れないでください[PATCH 00/25]。電子メールの件名と電子メールのコアを設定する

signed-off-byadd だけでパッチを生成したい場合-s

git format-patch -s --cover-letter -M master -o ../outgoing/

8) 次に、git コマンドで手紙を送信します。

git send-email --to=email.address@destination.com --cc=email.address2@destination.com --cc=email.address3@destination.com outgoing/*

パッチの送信に使用git send-emailするには、 ~/.gitconfig を編集してアカウント設定を指定します。

[sendemail]
        smtpencryption = tls
        smtpserver = smtp.gmail.com
        smtpuser = yourname@gmail.com
        smtpserverport = 587

関連リンク: http://www.kernel.org/pub/software/scm/git/docs/git-send-email.html

于 2012-12-28T20:34:53.617 に答える