私が仕事に精通しているすべてのバージョン管理システムは、各コミットが単一の開発者に帰属しているということです。アジャイルエンジニアリング、特にペアプログラミングの台頭により、2人の開発者が同じタスク(バグ修正など)に大きく貢献したという状況が生じています。
プロジェクトマネージャーはペアが行っている作業に気付くので、帰属の問題は作業環境ではさほど重要ではありませんが、2人のオープンソースの貢献者がペアを組んでコードをプッシュすることにした場合彼らが一緒に働いていることを知らない特定のプロジェクトに。 Gitのようなバージョン管理システムが特定のパッチを複数の開発者に帰属させる方法はありますか?
Commit title
Commit body
Co-Authored-By: name <[email protected]>
Co-Authored-By: name <[email protected]>
このアプローチの問題の1つは、このグループの開発者に対して署名付きのキーを作成できないことです。そのため、機能で機能していなくても、GitHubはそれをあたかも扱うように、本質的に誰でもこのリストに追加できます。ただし、ほとんどの場合、これは問題になりません。
例えばCo-Authored-By: Linus Torvalds <[email protected]>
通常の作成者または署名グループ(古い方法)では、署名されていないことがわかり、コミットを信頼できないことがわかります。ただし、共著者の署名プロセスはありません。
ほとんど時代遅れの答え:
1つの解決策は、ペアの名前を設定することです。
git config user.name "Chris Wilson and John Smith"
他の一時的なソリューションと関連するバグレポートは次のとおりです。
Git規約では、コミットメッセージの最後にCo-Authored-Byを使用します( git kernel:Commit Message Conventions 、 Openstack Commit Messages )を参照してください。これも 解決策の1つですgit-coreバグ リンク先 Gerryの答え
Co-authored-by: Some One <[email protected]>
2010年5月5日のそのコメントで、Josh Triplettは、gitで対応するサポートを実装することも提案しています。
Llopis がコメントで指摘したように、GitHubは2018年1月29日にブログでこのサポートを発表しました: 共著者と一緒にコミットする ( 詳細 ).
バザールの場合:
bzr commit --author Joe --author Alice --author Bob
これらの名前は、コミッター名とは別にログに表示されます。
git-pair
https://github.com/pivotal/git_scripts#git-pair
Gitペアプログラミング属性を自動化するPivotalのこのシンプルなスクリプト。
次のような.pairs
ファイルを作成します。
# .pairs - configuration for 'git pair'
pairs:
# <initials>: <Firstname> <Lastname>[; <email-id>]
eh: Edward Hieatt
js: Josh Susser; jsusser
sf: Serguei Filimonov; serguei
email:
prefix: pair
domain: pivotallabs.com
# no_solo_prefix: true
#global: true
その後:
git pair sp js
セット:
user.name=Josh Susser & Sam Pierson
[email protected]
あなたのために。
gitは、コミットのauthor
とcommitter
[1]を区別します。回避策として使用できます。 committer
としてあなた自身に署名し、author
としてあなたの共著者:
GIT_COMMITTER_NAME='a' GIT_COMMITTER_EMAIL='a@a' git commit --author 'b <b@b>'
これにより、あなたとあなたの共著者の両方がgit履歴に記録されます。ランニング git log --format=fuller
は、次のようなものを提供します。
commit 22ef837878854ca2ecda72428834fcbcad6043a2
Author: b <b@b>
AuthorDate: Tue Apr 12 06:53:41 2016 +0100
Commit: a <a@a>
CommitDate: Tue Apr 12 09:18:53 2016 +0000
Test commit.
慣例として、各コミットメッセージに最後に名前を追加します。例:Implemented cool feature <Aneesh | Hiren>
あるいは、GitHubに オープンソースプロジェクト があり、コマンドラインから実行するのに適した方法です。このプロジェクトは、次のように自動コミットを作成するためにエイリアスを設定するのに役立ちます。
$ git co-commit -m "Commit message" --co "co-author <co-author-email>"
このアプローチを使用すると、グラフィカルインターフェイスなしで共同作成されたコミットを作成できます。