Je vois cela sur ce référentiel GitHub :
Qu'est-ce que ça veut dire? Comment quelque chose peut-il être "créé il y a 7 jours" et "commis il y a 14 heures"?
commit --date=
. Schwern l'explique très bien.
Je vois cela sur ce référentiel GitHub :
Qu'est-ce que ça veut dire? Comment quelque chose peut-il être "créé il y a 7 jours" et "commis il y a 14 heures"?
commit --date=
. Schwern l'explique très bien.
Réponses:
Git a un concept distinct de l'auteur (la personne qui a écrit le code) et de committer (la personne qui l'a engagé dans le référentiel). De même, il peut y avoir des dates différentes pour les deux. Ce sont généralement les mêmes.
Vous voudriez qu'ils soient différents principalement si la personne qui écrit le code ou soumet le correctif n'a pas d'accès push au référentiel comme dans les projets qui utilisent des listes de diffusion pour les soumissions de correctifs. Dans ce cas, la personne disposant d'un accès push appliquerait le correctif et s'exécuterait git commit
avec les commutateurs --author
et--date
ou en utilisant les variables d'environnement GIT_AUTHOR_NAME, GIT_AUTHOR_EMAIL et GIT_AUTHOR_DATE (documentées dans git-commit-tree .
L'autre cas utilise git cherry-pick
ou git rebase. Le committer est la personne qui fait le choix, et l'auteur est l'auteur du commit d'origine. Git se chargera de définir l'identité et la date de l'auteur pour vous.
Vous pouvez voir ces informations dans le référentiel avec git log --pretty=fuller
.
commit 21550561941b078ea1862b882ec89f26696ff5bb (HEAD, origin/master, origin/HEAD, master)
Author: thiagopnts <thiagopnts@gmail.com>
AuthorDate: Tue Nov 18 14:52:49 2014 -0200
Commit: Thiago Pontes <email@thiago.me>
CommitDate: Tue Nov 25 09:46:58 2014 -0200
open repository url if confirmed, closes #1
git rebase
entraîne également la mise à jour de la date de validation tandis que la date de l'auteur reste la même.
Cela ressemble à un mélange entre la façon dont Git fonctionne avec les dates et la façon dont il a été référencé avec les mots clés de clôture de GitHub .
Git sépare les dates de validation et de création. Dans Pro Git, ils font un peu la différence :
L'auteur est la personne qui a écrit l'œuvre à l'origine, tandis que l'auteur est la dernière personne à avoir appliqué l'œuvre. Donc, si vous envoyez un correctif à un projet et que l'un des membres principaux applique le correctif, vous obtenez tous les deux du crédit - vous en tant qu'auteur et le membre principal en tant que committer.
Ainsi, alors que le code lui-même a été validé / écrit "il y a 7 jours" (localement), il n'a été "appliqué" ou corrigé au code qu'il y a "14 heures", car il n'était pas vu dans la télécommande jusqu'à ce qu'il soit référencé close. message.