Мне нужно знать, почему два коммита разные. У меня есть два коммита, e2383d и 2c44ab, которые, по-видимому, так как они имеют разные хэши, разные.
Сначала я знаю о git diff
, а сейчас пытаюсь git diff e2383d 2c44ab
. Возвращается успешно, без вывода. Два коммита имеют:
- То же сообщение о фиксации
- Тот же автор
- Тот же коммит дата ( отредактировано: извините, просто дата, смотрите мой ответ ниже)
- Тот же родитель
- То же содержание, , насколько я могу судить.
По сути, мое дерево выглядит так:
* ← stuff based on that commit
| * ← e2383d
* | ← 2c44ab
|/
* ← the common parent
Я собираюсь устранить e2383d, но прежде чем я сделаю это, я хотел бы убедиться, что там нет чего-то важного. Однако мое понимание git
заключалось в том, что если бы два «коммита» были одинаковыми, они имели бы одинаковый хэш, и, следовательно, моя ситуация не существовала бы, если бы между ними не было разницы.
Еще одна вещь, которую я пробовал:
% diff <(git show 2c44ab) <(git show e2383d)
1c1
< commit 2c44ab...
---
> commit e2383d...
Забыл, что коммиты имеют> 1 дату на них. Следующая команда показала (для меня) разницу между двумя моими коммитами:
% diff <(git show --pretty=fuller 2c44ab) <(git show --pretty=fuller e2383d)
1c1
< commit 2c44ab96bde429c9f345d8a12dfcf2278faa9333
---
> commit e2383d3164589bb3a8a679c9cb6bbe93ea41e2ee
5c5
< CommitDate: Wed Nov 23 17:06:40 2011 -0800
---
> CommitDate: Mon Nov 28 11:41:26 2011 -0800
Дата принятия в понедельник была временем, когда я делал ребазинг. Теперь, почему git
хранит это - кажется, это побеждает ожидаемое мной поведение "Это тот же коммит, я его сложу".