Подтвердить что ты не робот

Получить список всех нажатий с помощью Git

Как я могу получить список всех команд push на или с определенного пульта в git?

Для моего случая, это будет нормально для запуска на удаленном или локальном репозитории.

Для бонусных точек, как бы получить список всех успешных push команд?

4b9b3361

Ответ 1

Этот метод даст вам только успешные нажатия, но он может быть вам полезен:

Когда вы нажимаете на ветку на удаленном компьютере, которая соответствует одной из ветвей удаленного отслеживания, и что нажатие успешно, ветвь удаленного отслеживания будет обновлена. В случае по умолчанию, когда вы клонировали из репозитория, это обычно означает, что успешные нажатия на master в удаленном origin будут обновлять ветвь удаленного отслеживания origin/master. Изменения в origin/master записываются в reflog, поэтому вы можете найти успешные нажатия:

 git reflog show origin/master

Например, в одном из моих репозиториев вы увидите:

17f2303 refs/remotes/origin/[email protected]{0}: fetch origin: fast-forward
dd7e0ac refs/remotes/origin/[email protected]{1}: fetch origin: fast-forward
1788ffe refs/remotes/origin/[email protected]{2}: fetch origin: fast-forward
9763bbc refs/remotes/origin/[email protected]{3}: fetch origin: fast-forward
058d0d6 refs/remotes/origin/[email protected]{4}: fetch origin: fast-forward
921f0f1 refs/remotes/origin/[email protected]{5}: fetch origin: fast-forward
8483afd refs/remotes/origin/[email protected]{6}: update by push
18d527f refs/remotes/origin/[email protected]{7}: update by push
1a0fc4a refs/remotes/origin/[email protected]{8}: fetch origin: fast-forward
b19afc6 refs/remotes/origin/[email protected]{9}: fetch origin: fast-forward
9253285 refs/remotes/origin/[email protected]{10}: fetch origin: fast-forward
dfa664f refs/remotes/origin/[email protected]{11}: fetch origin: fast-forward
30ee7c0 refs/remotes/origin/[email protected]{12}: update by push
ad11e76 refs/remotes/origin/[email protected]{13}: fetch origin: fast-forward
c337975 refs/remotes/origin/[email protected]{14}: update by push
1ff03bd refs/remotes/origin/[email protected]{15}: update by push
7fb1c8d refs/remotes/origin/[email protected]{16}: fetch origin: fast-forward
452c8fa refs/remotes/origin/[email protected]{17}: fetch origin: fast-forward
6c79a16 refs/remotes/origin/[email protected]{18}: update by push
11d9c4a refs/remotes/origin/[email protected]{19}: fetch origin: fast-forward

Например, вы можете сказать из этого, что мой самый последний push обновил origin/master от 18d527f до 8483afd.

Если вам нужно полагаться на это, вам нужно остановить завершение работы reflog после времени по умолчанию (90 дней IIRC).