6

誰がリポジトリにプッシュしたかを特定するにはどうすればよいですか?

つまり、誰かがそうgit push origin masterし、レポのポスト受信フックで、origin誰かの名前または電子メールを使用する必要があります。

4

3 に答える 3

10

SSH プロトコルを使用して変更をサーバーにプッシュし、各ユーザーがサーバー上に独自のアカウントを持っている場合、スクリプトはプッシュを実行しているユーザーとして実行する必要があります。したがって、プッシュを行っている人のユーザー名を使用whoamiまたは取得できるはずです。id -un

このセットアップを使用していない場合、誰がプッシュしているかを追跡する最良の方法は、おそらく強力な Git 認証および承認システムであるGitoliteを使用することです。Gitolite では、update.secondaryおよびpost-update.secondaryhooksを使用できます。これにより、GL_USER環境変数が現在の Gitolite ユーザーに設定されます。

于 2010-09-21T16:02:09.870 に答える
0

Gitを使用してそれを知ることはできません。SSHを使用してプッシュする場合は、SSHを使用してユーザー名を取得できます。gitoliteなどのユーザー管理フロントエンドを使用する場合は、それを使用てユーザー名を取得できます。認証でHTTPを使用する場合は、Webサーバーを使用できます。ユーザー名を取得しますが、Gitネットワークプロトコルはユーザー名を送信しません。

于 2010-09-21T16:53:04.620 に答える
0

Gitがその種のアクセス制御を管理することを意図しているのかどうかはわかりません。

そのため、目的の適切な認証レベルを提供するgitosisgitoliteなどのsshベースのラッパーがあります。

于 2010-09-21T15:53:40.693 に答える