2012-03-20 11 views
8

On GitHub:GITとGitHub - 誰がリポジトリにコミットしたのかを教えてください。

Eveはいくつかの人気プロジェクトのフォークにコードを書き込み、"Eve" <[email protected]>としてコミットし、上流にプルリクエストを送信します。

アリスは、Eveのコードに、彼が取り組んでいる人気のあるプロジェクトのバックドアを含んでいることに気付かず、コードが素晴らしいと思ってプルリクエストをマージします。

その後、誰もが所有権を取得します。

ボブ、アリスの上司は、コードを誰でも着陸させたいと思います。彼はgit log --fullを行い、そして見ている:

commit deadbeef 
Author: Eve <[email protected]> 
Commit: Eve <[email protected]> 

git log --fullerは助けにはならない、とイブは、リポジトリへの直接プッシュ権限を持っていません。

ボブはプルリクエストの履歴を掘り下げてその方法を見つけることができますが、それは嫌です。これをローカルで把握する方法はありますか?

答えて

3

一般にgitではgit signoff(What is the Sign Off feature in Git for?を参照)を使用して、更新フックを追加してサインオフのないプッシュを拒否できます。しかし、GitHubのは、一般的には、カスタムフックを許可していないようですが、あなたはすべての将来のプッシュイベントをログに記録するポスト受信フックを追加することができます。

http://help.github.com/post-receive-hooks/

これはすでに、それが起こった出来事だった場合追跡するのが難しいかもしれません(または不可能ですか?)。 git reflogとsshのログを見ることができるかもしれませんが、GitHubがそのような情報を提供するかどうかはわかりません。それが本当にセキュリティ侵害であった場合は、少なくともログの内容を確認する価値があります。

+0

Git Signoffへのポインタをありがとう、以前はそれを見たことがないので、これは先進的かもしれません。 –

+1

私が知る限りでは、これはかなり不可能です。私が得たもう1つの提案は、githubでは自動マージボタンを使用しないでください。代わりにローカルのチェックアウトとマージダンスを行い、コミッターをすべてに明示的に割り当てます。 –

関連する問題