Крепление оторванной головки с помощью бирки
Можно ли починить отсоединенную головку с помощью бирки? Другими словами, возможно ли предотвратить сборщик мусора, удаляющий коммиты в отдельной голове с тегом при последнем коммите?
Любой другой пост, который я обнаружил, говорит о создании ветви в отсоединенной голове, чтобы предотвратить потерю коммитов, которые были созданы в этом состоянии, перед тем как уйти в другую ветку.
Как я понимаю, основное различие между тегом и ветвью заключается в том, что ветвь движется вместе с головой по сравнению с тегом, который остается в той же самой позиции, где он был создан.
В моем сценарии я проверил с SHA-1, а затем сделал пару коммитов с этого момента. Прежде чем уйти, я хочу поставить закладку и, думаю, с точки зрения семантики, тег будет лучше, чем ветка, чтобы вернуться позже.
У меня нет проблем с созданием ветки на этом этапе вместо тега, если это единственное, что я могу сделать, но мне интересно, как внутри себя работает git с тегами и ветвями, связанными с отсоединенной головой.
Кроме того, концептуально, если кто-то не согласен со мной относительно создания тега вместо ветки, в этом случае будет полезно получить пояснение.
2 ответа
Да, тег будет предотвращать сборку мусора так же, как ветка. Только недостижимые коммиты имеют право на сборку мусора, и git проверяет каждый реф, чтобы проверить, достижим ли коммит.
Неверно ставить тег, чтобы сохранить коммит на будущее. Есть, однако, некоторые недостатки:
git fetch
или жеpush
с некоторыми опциями скопируйте все теги на целевую сторону, без какого-либо сопоставления. Таким образом, любой закрытый временный тег может оказаться в общем пространстве имен.- слишком много тегов может вызвать проблемы в графическом интерфейсе
В целом, я бы сказал, что теги больше предназначены для публичных постоянных вех, например, релизов.
Есть еще варианты для рассмотрения:
- в течение некоторого времени commit не собирается и не доступен через reflog
- это может быть ветка, это не проблема, если она не меняется
- это может быть ссылка в еще одном пространстве имен, чем
tags
или жеbranches
, это, например, то, что делает пополам для промежуточных оценок - это может быть объединено с выделенной веткой коллекционирования. Это то, что я использую в местном развитии