Comment puis-je avoir une liste avec tous les fichiers qui ont été modifiés au cours des 2 derniers jours? Je connais
git log --name-status --since="2 days ago"
mais cela me montrera les identifiants, les dates et les messages de validation. Tout ce dont j'ai besoin est la liste des noms de fichiers qui ont été modifiés.
Est-ce possible avec git?
git log --pretty=format: --name-only --since="2 days ago"
si certains fichiers se dupliquent en plusieurs validations, vous pouvez utiliser un tuyau pour le filtrer
git log --pretty=format: --name-only --since="2 days ago" | sort | uniq
git diff --stat @{2.days.ago} # Deprecated!, see below
Court et efficace
TLDR: utilisez git diff $(git log -1 --before=@{2.days.ago} --format=%H) --stat
Explication longue: La solution d'origine était bonne, mais elle avait un petit problème, elle était limitée à reflog
, en d'autres termes, ne montre que l'historique local, car reflog
n'est jamais poussé vers - à distance. C'est la raison pour laquelle vous obtenez le warning: Log for 'master' only goes back to...
Dans les dépôts récemment clonés.
J'ai configuré cela alias sur ma machine:
alias glasthour='git diff $(git log -1 --before=@{last.hour} --format=%H) --stat'
alias glastblock='git diff $(git log -1 --before=@{4.hours.ago} --format=%H) --stat'
alias glastday='git diff $(git log -1 --before=@{last.day} --format=%H) --stat'
alias glastweek='git diff $(git log -1 --before=@{last.week} --format=%H) --shortstat | uniq'
alias glastmonth='git diff $(git log -1 --before=@{last.month} --format=%H) --shortstat | uniq'
crédits: réponse ci-dessous par @ adam-dymitruk
Vous pouvez faire un diff d'une version la plus proche d'il y a 2 jours avec:
git diff $(git log -1 --before="2 days ago" --format=%H).. --stat
--stat
vous donne un résumé des modifications. Ajouter --name-only
pour exclure toute méta-information et n'avoir qu'une liste de noms de fichiers.
J'espère que cela t'aides.
Utilisez l'option --raw pour git log:
$ git log --raw --since=2.days
Voir la partie --diff-filter de la page d'aide du journal git pour l'explication des indicateurs affichés au format --raw. Ils expliquent ce qui arrive aux fichiers dans chaque commit:
--diff-filter=[(A|C|D|M|R|T|U|X|B)...[*]]
Select only files that are Added (A), Copied (C), Deleted (D),
Modified (M), Renamed (R), have their type (i.e. regular file,
symlink, submodule, ...) changed (T), are Unmerged (U), are Unknown
(X), or have had their pairing Broken (B). Any combination of the
filter characters (including none) can be used. When *
(All-or-none) is added to the combination, all paths are selected
if there is any file that matches other criteria in the comparison;
if there is no file that matches other criteria, nothing is
selected.
git log --pretty="format:" --since="2 days ago" --name-only