Я обнаружил, что изменяю свои коммиты довольно часто. Я не stash
так много, потому что я склонен забывать, что я сделал это, особенно когда я хочу сохранить то, что я сделал, перед отъездом или перед выходными, поэтому я делаю «черновой» коммит. Единственное, что, когда я изменяю коммит, он по-прежнему устанавливается с первоначальной датой автора. Есть ли (простой) способ обновить его при внесении изменений?
305
Ответы:
Вы можете изменить дату автора с
--date
параметром наgit commit
. Итак, если вы хотите изменить последний коммит и обновить дату его автора до текущей даты и времени, вы можете сделать:(
-R
Параметр, которыйdate
указывает ему выводить дату в формате RFC 2822. Это один из форматов даты, понимаемыхgit commit
.)источник
date
не знает-R
. Использованиеdate
без опций все равно!
и избежать кавычки, напримерcan = !git commit --amend --date=\"$(date -R)\"
date -R
не работает на OSX, используйтеdate +%s
вместо этогоgit commit --amend --date="$(date +%s)"
git commit --amend --date=now
работает также. Нет необходимости вызывать подоболочку с командой date (1) . Вы можете увидеть это в исходном коде git (1) в date.c 'now' - это специальное значение, которое конвертируется с помощью функции date_now (). То же самое для «полдня», «вчера», «полуночи», «чая» и других, перечисленных в специальном массиве структур [].Еще один способ сделать это
Это не только меняет автора коммита, но и дату, но если изначально это был ваш незафиксированный коммит, то это не вариант.
Вы также можете добавить,
--no-edit
если вы хотите обновить дату нескольких коммитов, но хотите, чтобы сообщения о коммитах оставались нетронутыми. Таким образом, вам не будет предложено редактировать сообщение для каждого коммита.источник
git commit --amend
изменения фиксируют, а не просто настраивают или что-то в этом роде, то есть это приводит к различной истории изменений содержимого репозитория, где любая система контроля версий является очень строгой. И поэтому я интуитивно ожидаю, что и автор, и дата соответствуют фактическим данным коммита. Особенно важно авторство, даже не дата. Голосуйте за этот комментарий, если вы хотите победить разработчиков git, ответственных за такой дефолт. :)Начиная с Git v2.1.4 (протестировано на Debian 8 (Jessie))
источник
--no-edit
.Мне нравится ответ Марка, и я сам несколько раз использовал его, но сейчас я работаю на OS X и
date -R
не поддерживается. Но все гораздо проще, чем заставил задуматься оригинальный ответ, просто используйте пустую строку !источник
fatal: invalid date format:
--date="$(date)"
в OS X. Опция-R
GNUism.Я создал этот пакет npm, если кто-то все еще ищет простой способ изменить даты нескольких коммитов.
https://github.com/bitriddler/git-change-date
Использование:
источник
npm
пакете? Нет, научитесь использоватьgit
команду как есть.