Je n'arrive pas à comprendre comment voir exactement ce qui a été changé, dans le dépôt distant, par un 'push'. 'git log' me montre la série de commits mais ceux-ci ont eu lieu dans mon référentiel local et ont été poussés à des moments différents; Je voudrais savoir quels commits faisaient partie de chaque 'push'git: comment voir les changements dus à la poussée?
Répondre
En fait, vous pouvez extraire cette information du réflecteur. Ce n'est pas l'historique complet du référentiel distant, mais plutôt l'historique de votre copie de la branche du référentiel distant. Ainsi, vous ne verrez pas les modifications apportées au référentiel distant par d'autres personnes. Ce n'est pas joli, mais vous pouvez probablement écrire un script pour le rendre plus facile.
Par exemple:
$ 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
...
Vous pouvez voir ici que mon dernier poussée avancé origin/master
de 6e9558c
à 2958d6c
. Pour voir les validations, vous pouvez utiliser git log 6e9558c..2958d6c
. Par exemple,
$ git log --abbrev-commit --pretty=oneline 6e9558c..2958d6c
2958d6c Commit Summary 4
5cbe548 Commit Summary 3
13d007c Commit Summary 2
4f19ac3 Commit Summary 1
Si vous avez accès terminal au dépôt distant, vous pourriez faire quelque chose de semblable à cette fin pour voir toutes les poussées qu'il a reçues.
Git ne tient pas compte des commits qui faisaient partie de quelle opération "push"; soit le référentiel contient une certaine séquence de validations, soit ce n'est pas le cas. Peu importe à Git comment les commits sont arrivés là, si un groupe de trois commits faisait partie d'une poussée, ou si chacun avait été fait dans une poussée séparée.
Ce n'est pas vrai - le reflog se souviendra de tous les changements apportés à chaque extrémité de la branche. Une poussée de plusieurs commits apparaîtra comme un seul changement dans le reflog. Voir ma réponse ci-dessous. –
C'est vrai, mais le reflog ne fait pas partie du référentiel. En particulier, vous ne pouvez pas afficher un reflet distant sans accès direct au référentiel (par exemple, vous ne pouvez pas afficher un refog pour un référentiel sur Github). –
True mais Github expose quelque chose de similaire via leur API: https://objectpartners.com/2014/02/11/recovering-a-commit-from-githubs-reflog/ –
Est-il possible d'obtenir le journal avec des horodatages? – user
'git reflog --date = iso' crédits: https://stackoverflow.com/a/17369548/2234009 –