1

誰が新しいブランチを GitHub のリモート リポジトリにプッシュしたかを知ることができるかどうか知りたいですか?

問題は、ある開発者が作成した既存のマスター ブランチのコミットからチェックアウトしてブランチが作成されたため、[コード] タブで新しいブランチを選択すると、彼が最後のコミット (マスター ブランチにある) を作成したことがわかります。 、しかし実際には彼は新しいブランチをプッシュしませんでした。

私の状況を明確にするために、ここに私が何を意味するのかを示します

                                      master
                                        |
  --*---*----*--      ...........     --*
                                        |
                                    new branch
4

3 に答える 3

2

いいえ、プッシュ時に自分自身を認証および識別するためのシステムは Git の範囲外であるため、Git 自体はコミットをプッシュした「誰」に関する情報を保存しません。

むしろ、プッシュ時に何が起こったかをサーバー ログで確認する必要があります。プッシュが SSH 経由で発生する場合は、syslog を確認してください。HTTP 経由で発生した場合は、サーバーのアクセス ログを確認してください。

もちろん、セットアップの識別の概念に従ってプッシュをログに記録するためのフック スクリプトを中央リポジトリに作成することもできますが、この質問のポイントは、この場合の履歴イベントについて知りたいということではなく、将来のための証明。

于 2013-09-27T07:24:17.493 に答える
2

GitHub Events APIを介してこの情報にアクセスできるはずです。

  • 構文: GET /repos/:owner/:repo/events
  • 例: https://api.github.com/users/libgit2/events

これにより、イベントの JSON 配列が返されます。誰がこのリポジトリにプッシュしたかを発見するには、それらのイベントをフィルタリングし、typeプロパティが等しいイベントのみを調べる必要があります"WatchEvent"actorプロパティには、プッシャーに関する詳細が含まれます。

そのようなサンプルの下にPushEvent

{
   id:"1842109394",
   type:"PushEvent",
   actor:{
      id:39902,
      login:"ben",
      gravatar_id:"0d410939c9e80980cf0430772567dfb4",
      url:"https://api.github.com/users/ben",
      avatar_url:"https://2.gravatar.com/avatar/0d410939c9e80980cf0430772567dfb4?d=https%3A%2F%2Fa248.e.akamai.net%2Fassets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"
   },
   repo:{
      id:901662,
      name:"libgit2/libgit2",
      url:"https://api.github.com/repos/libgit2/libgit2"
   },
   payload:{
      push_id:235346159,
      size:1,
      distinct_size:1,
      ref:"refs/heads/redir-refactor",
      head:"b59344bf83049a5639c32ab52efceea2eec9484b",
      before:"256961e45d574ace62a7a7d13b697aa05e8a9466",
      commits:[
         {
            sha:"b59344bf83049a5639c32ab52efceea2eec9484b",
            author:{
               email:"bs@github.com",
               name:"Ben Straub"
            },
            message:"Tighten up url-connection utility",
            distinct:true,
            url:"https://api.github.com/repos/libgit2/libgit2/commits/b59344bf83049a5639c32ab52efceea2eec9484b"
         }
      ]
   },
   public:true,
   created_at:"2013-09-26T23:56:59Z",
   org:{
      id:394745,
      login:"libgit2",
      gravatar_id:"1c56acccc41c591705dc92da5f6ab603",
      url:"https://api.github.com/orgs/libgit2",
      avatar_url:"https://1.gravatar.com/avatar/1c56acccc41c591705dc92da5f6ab603?d=https%3A%2F%2Fa248.e.akamai.net%2Fassets.github.com%2Fimages%2Fgravatars%2Fgravatar-org-420.png"
   }
}
于 2013-09-27T08:17:40.880 に答える
0

試す

git log remotename/branchname

これにより、そのリポジトリ内の特定のリモート ブランチのログが表示されます。

于 2013-09-27T07:12:28.280 に答える