Git: как увидеть изменения из-за нажатия?

Я не могу понять, как узнать, что именно было изменено в удаленном репозитории, нажатием кнопки. 'git log' показывает мне ряд коммитов, но те, которые произошли в моем локальном репозитории, были нажаты в разное время; Я хотел бы знать, какие коммиты были частью каждого конкретного "push"

Ответы

Ответ 1

Собственно, вы можете ловить эту информацию из рефлога. Это не полная история удаленного репозитория, а скорее история вашей копии ветки удаленного репозитория. Таким образом, вы не увидите изменений, которые были внесены в удаленный репозиторий другими людьми. Это не очень, но вы, вероятно, можете написать script, чтобы упростить его.

Например:

$ git reflog show origin/master
ca4f119 refs/remotes/origin/[email protected]{0}: pull --rebase: fast-forward
d303ece refs/remotes/origin/[email protected]{1}: pull --rebase: fast-forward
ce28c26 refs/remotes/origin/[email protected]{2}: pull --rebase: fast-forward
0f71883 refs/remotes/origin/[email protected]{3}: pull --rebase: fast-forward
8c2f0dd refs/remotes/origin/[email protected]{4}: pull --rebase: fast forward
2958d6c refs/remotes/origin/[email protected]{5}: update by push
6e9558c refs/remotes/origin/[email protected]{6}: pull --rebase: fast-forward
8854b35 refs/remotes/origin/[email protected]{7}: pull --rebase: fast-forward
b96f25d refs/remotes/origin/[email protected]{8}: pull --rebase: fast-forward
efb0ab8 refs/remotes/origin/[email protected]{9}: pull --rebase: fast-forward
71c12ca refs/remotes/origin/[email protected]{10}: pull --rebase: fast-forward
d860e59 refs/remotes/origin/[email protected]{11}: update by push
6342dbb refs/remotes/origin/[email protected]{12}: fetch: fast-forward
...

Здесь вы можете видеть, что мой последний push продвинулся origin/master от 6e9558c до 2958d6c. Чтобы увидеть коммиты, вы можете использовать git log 6e9558c..2958d6c. Например.

$ git log --abbrev-commit --pretty=oneline 6e9558c..2958d6c
2958d6c Commit Summary 4
5cbe548 Commit Summary 3
13d007c Commit Summary 2
4f19ac3 Commit Summary 1

Если у вас есть доступ к терминалу в удаленном репозитории, вы можете сделать что-то подобное с этой целью, чтобы увидеть все полученные им нажатия.

Ответ 2

Git не отслеживает, какие коммиты являются частью операции "push"; либо репозиторий содержит определенную последовательность коммитов, либо нет. Для Git не имеет значения, как заключены коммиты, была ли группа из трех коммитов частью одного нажатия, или каждый из них выполнялся отдельным нажатием.