Как можно изменить дату создания коммитов в Git?

Как я могу изменить дату создания нескольких коммитов в Git, чтобы они все имели одно и то же время (например, 17:00 текущего дня), при этом сохранив 10 коммитов, которые я сделал вечером?
  • 28 марта 2025 г. 11:04
Ответы на вопрос 2
Изменение даты создания коммитов в Git можно выполнить с помощью интерактивного ребейза (`git rebase -i`). Чтобы сделать это для нескольких коммитов и выставить их на одно и то же время, выполните следующие шаги:

1. **Введите интерактивный ребейз**: Начните с указания числа коммитов, которые вы хотите изменить. Например, если вы хотите изменить последние 10 коммитов, выполните команду:
   ```bash
   git rebase -i HEAD~10
   ```

2. **Отредактируйте список коммитов**: Откроется текстовый редактор с перечислением ваших последних 10 коммитов. Измените слово `pick` на `edit` для каждого из коммитов, даты которых вы хотите изменить. Например, это будет выглядеть так:
   ```
   edit abc1234 Commit message 1
   edit def5678 Commit message 2
   edit ghi9012 Commit message 3
   ...
   ```

3. **Сохраните и закройте редактор**: После внесения изменений сохраните файл и закройте редактор. Git начнет процесс ребейза и остановится на первом указанном коммите для редактирования.

4. **Измените дату коммита**: На каждом этапе выполнения ребейза используйте команду `git commit --amend --no-edit --date="YYYY-MM-DD HH:MM:SS"` для изменения даты. Например, если вы хотите установить дату на 17:00 текущего дня, выполните:
   ```bash
   git commit --amend --no-edit --date="$(date -d '17:00 today' '+%Y-%m-%d %H:%M:%S')"
   ```

5. **Продолжайте ребейз**: После изменения даты, вы можете продолжить ребейз с помощью команды:
   ```bash
   git rebase --continue
   ```
   Повторяйте шаги 4 и 5, пока не измените все необходимые коммиты.

6. **Завершите процесс**: После того, как ребейз завершится, ваши коммиты будут иметь одинаковую дату.

### Учтите:
- Если ваши изменения были отправлены в удалённый репозиторий (например, на GitHub), вам нужно будет принудительно отправить изменения с помощью `git push --force`.
- Будьте осторожны с изменением коммитов, так как это может повлиять на других разработчиков, использующих тот же репозиторий.
- Использование `--force` может привести к потере данных, если кто-то другой уже совершал коммиты после ваших. Убедитесь, что вы знаете, что делаете, прежде чем продолжать.
https://git-scm.com/docs/git-commit 

git commit --date="YYYY-MM-DD HH:MM:SS"
Похожие вопросы