В (локальных) хранилищах, ничего не защищено от удаления. Вы можете удалить практически все: ветки, коммиты и теги. Вы даже можете удалить весь репозиторий, просто удалив папку. В Git нет ничего, что могло бы или даже пытаться предотвратить это. В конце концов, это ваш репозиторий, поэтому вы можете делать с ним все, что хотите.
Это немного отличается после добавления удаленного репозитория к этому уравнению. Опять же, локальный репозиторий не может помешать вам удалять вещи в удаленном репозитории (и вы не хотите, чтобы локальный сервер отвечал за защиту удаленного в любом случае). Таким образом, Git позволяет вам что-то нажимать, даже если это означает, что удаленный репозиторий лишает какую-либо информацию (либо активно удаляя вещи, либо перезаписывая их чем-то другим).
Удаленный репозиторий сам по себе также не имеет защиты. Сам Git не имеет управления доступом в своих протоколах взаимодействия с удаленными репозиториями. Так что вам нужна третья сторона, которая не отвечает за этот материал. Для самостоятельных репозиториев Gitolite - это в значительной степени решение. Он поддерживает очень тонкую модель разрешения, и вы можете добавлять правила и исключения практически для каждого варианта использования. В частности, он позволяет защитить ветви и теги от (вредных) модификаций.
Если вы не являетесь самостоятельным владельцем, вам необходимо искать варианты защиты у вашего провайдера. Например, GitHub поддерживает защищенные ветви, которые позволяют вам предотвращать силовые нажатия на эти ветви. К сожалению, у него нет функции для тегов, поэтому вы все равно можете использовать теги push-push. У BitBucket есть более гибкая функция для разрешений филиалов, которая также позволяет создавать шаблоны. Возможно, вы можете использовать шаблон для указания тегов, но я честно не уверен в этом.
В общем, вы не можете защитить свой репозиторий от удаления тегов. Если это какая-либо помощь, если вы заметили, что теги были изменены или удалены, вы всегда можете принудительно нажать на свои локальные теги, чтобы сбросить состояние до того, как оно было.
Возможно, вы сможете выполнить это с помощью крючка, q.v. [Здесь] (http://stackoverflow.com/questions/6390966/disable-tag-deletion). –
Теги могут быть удалены точно так же, как ветви, коммиты, и на самом деле все можно удалить. Если вы хотите этого избежать, настройте сервер, чтобы отклонить такие изменения (аналогично, как вы его настроили, чтобы отклонить принудительные нажатия). – poke
Возможный дубликат [Отключить удаление тега] (http://stackoverflow.com/questions/6390966/disable-tag-deletion) –