Je me suis retrouvé à modifier mes engagements assez souvent. Je ne le fais pas stash
tellement parce que j'ai tendance à oublier que je l'ai fait, surtout quand je veux sauvegarder ce que j'ai fait avant de partir ou avant un week-end, donc je fais un "draft" commit. La seule chose est que lorsque je modifie le commit, il est toujours défini sur la date d'origine de l'auteur. Existe-t-il un moyen (simple) de le mettre à jour lors de la modification?
305
Réponses:
Vous pouvez modifier la date de l'auteur avec le
--date
paramètre surgit commit
. Donc, si vous souhaitez modifier le dernier commit et mettre à jour sa date d'auteur à la date et l'heure actuelles, vous pouvez faire:(Le
-R
paramètre à luidate
indique de sortir la date au format RFC 2822. C'est l'un des formats de date compris pargit commit
.)la source
date
ne sait pas-R
. L'utilisationdate
sans options a quand même fait l'affaire!
et échapper aux guillemets, par exemplecan = !git commit --amend --date=\"$(date -R)\"
date -R
ne fonctionne pas sur OSX, utilisez à ladate +%s
placegit commit --amend --date="$(date +%s)"
git commit --amend --date=now
fonctionne aussi. Pas besoin d'appeler un sous-shell avec la commande date (1) . Vous pouvez le voir dans le code source de git (1) dans date.c 'now' est une valeur spéciale qui est convertie en utilisant la fonction date_now (). Idem pour «midi», «hier», «minuit», «thé» et d'autres répertoriés dans le tableau de structure spécial [].Une autre façon de procéder est
Cela change l'auteur de la validation ainsi que la date - mais si c'était à l'origine votre validation non poussée, c'est un no-op.
Vous pouvez également ajouter
--no-edit
si vous souhaitez mettre à jour la date sur plusieurs validations mais que les messages de validation restent intacts. De cette façon, vous ne serez pas invité à modifier le message pour chaque validation.la source
git commit --amend
changements sont validés plutôt que de simples ajustements ou quelque chose comme ça, c'est-à-dire qu'il en résulte un historique différent des changements de contenu du référentiel où tout système de contrôle de version est très strict. Et en tant que tel, je m'attends intuitivement à ce que l'auteur et la date correspondent aux données de validation réelles. La paternité est particulièrement importante, pas même la date. Votez ce commentaire si vous voulez battre les développeurs git responsables d'un tel défaut. :)Depuis Git v2.1.4 (testé sur Debian 8 (Jessie))
la source
--no-edit
.J'aime la réponse de Mark et je l'ai utilisée plusieurs fois moi-même, mais maintenant je suis sur OS X et ce
date -R
n'est pas pris en charge. Mais tout est beaucoup plus facile que la réponse originale nous l'avait fait penser, utilisez simplement une chaîne vide !la source
fatal: invalid date format:
--date="$(date)"
sous OS X. L'option-R
est GNUism.J'ai créé ce package npm si quelqu'un cherche toujours un moyen simple de modifier les dates de plusieurs validations.
https://github.com/bitriddler/git-change-date
Usage:
la source
npm
package? Non, apprenez à utiliser lagit
commande telle quelle .