Помните, что нормальный способ работы Git - просто ссылаться на некоторые отдельные коммиты как на "верх ветвей или тегов". Эти коммиты, в свою очередь, ссылаются на своих отцов, поэтому история строится.
Пока коммит ссылается на «что-то», он гарантированно никогда не исчезнет. Это «что-то» может быть тегом, веткой, другим коммитом или рефлогом данной ветки. Однако, когда его больше нет, Git позволит сборщику мусора очистить все, что ожидает, и больше не является полезным. Кроме того, прежде чем действительно что-то удалять, Git сначала будет соблюдать льготный период, обычно три месяца, прежде чем решить, что его действительно не стоит сохранять.
Таким образом, правильный ответ здесь будет следующим: « не заботятся об этих коммитах, они в конечном итоге сами исчезнут ».
Однако, если вы можете увидеть их в результате git log
, как, кажется, показывает ваш скриншот, это либо потому, что вы просматриваете ветку, которая все еще ссылается на них, либо потому, что вы вызываете явная идентификация хеш-суммы данного коммита, даже если на него больше нет ссылок.
В первом случае, если вы действительно хотите удалить некоторые конкретные коммиты среди данной ветви, вам, вероятно, нужно перебазировать эту ветку, используя git rebase -i
, чтобы указать, что должно быть сохранено. и выброшены.
Если вы действительно хотите, чтобы убить их всех прямо сейчас и навсегда (например, потому что вы случайно толкнул порно или некоторые конфиденциальные сведения), вы можете посмотреть на данной записи . Имейте в виду, однако, что это только очистит ваш локальный репозиторий. Если вы уже что-то отправили, вам понадобится доступ к соответствующей машине.