Если я сделал git commit -amend несколько раз при одной и той же фиксации, есть ли способ, чтобы я мог перечислить все различные поправки к данной фиксации?Показать изменения в фиксации
ответ
git commit --amend
полностью переписывает фиксацию, создавая новый объект фиксации и, в конечном счете, отбрасывая старый. Если есть ссылки на старый объект, он хранится, поэтому вы можете искать изменения; но в целом это, вероятно, не так.
Таким образом, короткий ответ: Нет. Поправки совершают переписывание первоначальной фиксации явно не имеют раздельную историю. Если вы хотите идентифицировать разные состояния, вы должны просто совершить реальные коммиты.
Если вы просто хотите, чтобы это было во время вашей (личной/частной) разработки, вы также можете совершать обычные коммиты, а затем позже выкапывать коммиты для создания одного, если вы хотите его очистить.
, когда вы делаете сквош, где делаются коммиты, которые состоят из раздавленного коммита? –
Сквош в основном делает то же самое, что и постоянное изменение одного фиксации. Он создает новый объект фиксации, в котором все изменения от других отдельных коммитов объединяются. Впоследствии, если никакие дополнительные ссылки (ветви, теги) не указывают на эти коммиты, они могут быть автоматически удалены. – poke
На самом деле существует путь. Вы можете использовать команду git reflog
$ git reflog
d7f7f15 [email protected]{0}: commit (amend): My second commit
f5d2ed5 [email protected]{1}: commit (amend): My second commit
7333d86 [email protected]{2}: commit: My second commit
addbfef [email protected]{3}: commit: This was my first commit
Когда я использую Пугин EGit в IDE Eclipse, я могу увидеть полный список фиксаций и поправок, а также различия между ними. Я не знаю, как увидеть различия по командной строке, если кто-то знает, как это сделать, пожалуйста, опубликуйте его.
Взгляните на 'git reflog'. Но этот журнал не является постоянным и регулярно очищается. – knittl