git commit - réglage des horodateurs dans l'avenir
J'ai besoin de faire quelques révisions à l'aide de Git, mais je voudrais l'horodatage dans git-le journal de l'être dans l'avenir.
Comment puis-je faire un commit dans git qui provoque un avenir horodatage de s'inscrire dans le git log?
- Avez-vous essayez de changer votre horloge? =) Je pense que devrait travailler localement, mais vous ne savez pas ce que ferais se produire lorsque les autres aller en fusion.
- Les horodateurs ne sont pas pertinentes pour les fusions.
Vous devez vous connecter pour publier un commentaire.
Vous devriez attendre un peu.
Ou vous pouvez faire ceci:
Note qu'il y a à la fois un auteur, une date et un committer date, alors assurez-vous de définir le droit de l'un (ou les deux).
Vous pouvez modifier le commettre, un exemple avec l'année 2037:
J'ai essayé l'an 2038 trop mais j'ai eu un null valeur de la date.
git log
montreGIT_AUTHOR_DATE
par défaut, pasGIT_COMMITTER_DATE
. Vous pouvez vérifier avecgit log --pretty=fuller
qui montre à la fois. Modifiant le commit avec le--date
option permet de modifier le auteur date. Modifiant sans cette option ne modifie que la commit date, car il re-crée le commettre.Si vous souhaitez retenir les services d'un réel changement de date lors de l'ajout d'un projet git, vous pouvez le faire avec
Cela va s'engager avec le changement de date du dernier changement *.fichier cpp, et une belle expliquant message de la réelle commettre date.
En combinant Hugo réponse (Un) avec les informations trouvées ici (Deux), et en jetant dans certains
sed
, j'ai obtenu ceci:La principale différence est que cette version effectue une recherche récursive, de sorte que vous obtenez le dernier fichier n'importe où dans l'arbre - si elle ne sautez la .répertoire git, intentionnellement.
Vous pouvez, bien sûr, vous voulez déposer l'un de la date de variables ici, et je suis en utilisant une version relativement récente de bash (4.2.37(1)-release), de sorte que la notation $() peut ne pas fonctionner pour vous (il suffit de les remplacer avec des backticks (`) à la place).
newest | xargs date -u -r
meurt sur des espaces dans le nom de fichier. sed dans le FSF repo prend en charge nul de terminaison des lignes et que j'avais de faire de l'ensemble de pipeline sûr, mais jusqu'alors, je dirais utilisez-d\\n lorsque xarg avec les noms de fichiers. . . .find . -name .git -prune -o -type d -o -print0 | xargs -0 ls -dt | sed q
est plus courteSi vous souhaitez modifier un commit avec une date "de l'avenir", comme dans cette réponse:
Voir s'engager 1820703 (21 Août 2018) par Derrick Stolee (
derrickstolee
).(Fusionnés par Junio C Hamano --
gitster
-- dans s'engager 1392c5d, 27 Août 2018)Puis-je vous demander pourquoi vous voulez faire ça?
Si vous ne voulez pas changer votre horloge, je suggère la création d'un script pour faire le commit et utiliser le Planificateur de tâches Windows (ou autre équivalent pour votre système d'exploitation) pour exécuter le script à l'heure que vous voulez l'engager à être.