Я думаю что вы на самом деле просят сводится к тому: «если я git branch -d old_homepage
будет коммиты заблудиться», и ответ: «Удаление имени удаляет только имя; коммиты сами палки пока вы их видите в git log --all
, а на самом деле даже дольше. "
Чтобы визуализировать это лучше, запустите что-то вроде gitk --all
или gitk --tags
(попробуйте как на сложном git-репозитории). Прокрутите список через фиксации. Теперь представьте себе, что нужно положить заметку на любую фиксацию. Это имя «tag» или «branch». Снимите записку. Commit все еще существует, не так ли? :-)
Это оставляет один очевидный вопрос: когда что-то вроде совершает на самом деле уходит? Ответ: только после того, как вы удалите все имена, которые приводят к ним. Команда gitk
(как и большинство других команд git) начинается с имени HEAD
. Если вы дадите --all
, он добавит все названия ветвей, которые он может найти. Если вы дадите --tags
, он добавит все имена тегов, которые он может найти. Затем он работает в обратном порядке, глядя на каждую фиксацию, чтобы увидеть, что другие фиксации (ы), на которые она ссылается.
Git удаляет вещи (коммитты и т. Д.), Когда нет возможности их найти, начиная с одного из этих очевидных имен и обращаясь назад. (Даже тогда он ждет долгое время, от 30 до 90 дней по умолчанию.) Итак, если вы добавите ярлык ветки или тега к старой фиксации, номер которой вы нашли, например, с помощью git log
, это дает вам новое очевидное имя для этого число фиксации; но удаление снова безопасно, если только не способ найти его по названию.
Вы хотите, чтобы вы объединили свои фиксации в ветке, которую хотите удалить, с помощью мастера? – learnvst
, предполагая, что фиксация является предком 'master' (или любой другой ветви), фиксация не будет удалена, пока ветвь не будет изменена неперемоткой вперед. –