Что я пытаюсь сделать:Как очистить git-историю, удалив некоторые коммиты после того, как они были нажаты?
Я завершил функцию.
git add -A; git commit -m "feature A complete"
Тогда я понял, что пропустил некоторые вещи.
git add -A; git commit -m "feature A missed something 1"
git add -A; git commit -m "feature A missed something 2"
git add -A; git commit -m "feature A missed something 3"
Теперь моя история выглядит следующим образом:
A238ad1 feature A missed something 3
3238adX feature A missed something 2
1238ad7 feature A missed something 1
111AAA2 feature A complete
Я хочу, чтобы выглядеть следующим образом:
111AAA2 feature A complete
Со всеми missed something
коммитов объединены в feature A complete
фиксации.
Я знаю, что git rebase -i HEAD~4
- это правильный путь, но на самом деле он не удаляет плохие коммиты, чтобы очистить историю.
Я заметил, что в некоторых других статьях есть команда git commit --fixup
и git rebase -i --autosquash
, но я не заставляю ее работать правильно. Я уверен, что это очень просто, я просто из этого сегодня.
Причина, по которой они ничего не удаляют, вероятно, потому, что вы не указали, что делать с этими коммитами во время интерактивной переадресации. Вы должны изменить 'pick', который по умолчанию используется' squash'. Таким образом, он будет раздавливать друг с другом, и вам будет дана возможность редактировать фиксацию в конце –