Я новичок в git, и мне было интересно, возможно ли что-то подобное?
>git log --pretty=oneline --abbrev-commit
2f05aba Added new feature
3371cec Fixed screw up <-- I want to remove this
daed25c Screw up <-- and remove this.
e2b2a84 First. So it's like they never happend.
Это возможно?
Если вы действительно хотите удалить их (стереть их из истории, чтобы их больше не видели), вы можете
запустить rebase:
а затем просто удалите (или закомментируйте) строки, соответствующие коммитам, которые вы хотите удалить, например:
источник
git push origin HEAD --force
git revert
. Что, если подумать, это разумно, потому что, если бы вы вытащили чужой код, вы бы не хотели, чтобы они могли стирать ваши старые коммиты без какой-либо истории, не так ли?d
илиdrop
это команда для удаления коммитов из истории.Чтобы полностью удалить фиксацию (и), теперь есть новая опция
drop
для интерактивных перебазов git. Первый забег:Затем замените
pick
сdrop
для фиксации (s) быть отброшено:У меня это сработало в Fedora со следующей версией:
источник
Сквош полезен, когда вы хотите сгенерировать список объединенных коммитов под одним хешем, но если вы хотите взять три отдельных коммита и получить окончательный результат, который выглядит так, как будто это был один коммит, я рекомендую
fixup
git rebase -i HEAD~4
Дополнительную информацию можно найти в списке команд пользовательского интерфейса интерактивной перебазировки.
источник