git: как увидеть изменения из-за нажатия? - PullRequest
16 голосов
/ 17 февраля 2010

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

Ответы [ 2 ]

17 голосов
/ 17 февраля 2010

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

Например:

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

Здесь вы можете видеть, что мой самый последний толчок продвинутый 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

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

3 голосов
/ 17 февраля 2010

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

...