Как предотвратить повторную отправку удаленного тега в удаленный репозиторий git? - PullRequest
2 голосов
/ 12 апреля 2019

Я пытаюсь помешать коллегам снова выдвинуть тег в git, который был удален (потому что он был ошибочно передан один раз).

Я знаю, как сделать это локально и как перенести его на удаленныйи как дать указание моим коллегам сделать правильный способ удаления удаленного тега из их локального репозитория.

Проблема в том, что требуется всего один сотрудник, который выполняет толчок без первой обрезки изатем удаленный тег возвращается, и очень скоро все коллеги возвращают старый тег.

Ночной кошмар - координировать и обеспечивать, чтобы все делали с черносливом правильный момент.

Я подозреваю, что я должен прибегнуть к крючкам.Любые предложения о том, как решить эту проблему автоматизированным способом, который не требует, чтобы все делали точный выбор времени с черносливом?

Было высказано предположение, что этот вопрос имеетрешение, но этот вопрос просто обсудить, как удалить удаленный тег.Я недостаточно знаком с git-хуками, чтобы решить эту проблему, поэтому очень хотелось бы узнать, как решить эту проблему с помощью git-хуков.

1 Ответ

1 голос
/ 12 апреля 2019

Вы можете решить эту проблему с помощью хуков, либо на стороне клиента (так как вы управляете машинами своих коллег), либо на стороне сервера (лучший способ). Другие ответы, вероятно, помогут вам в этом.

Тем не менее, слово об избежании этого: правильный способ справиться с этим - , а не , дающий толковое разрешение всем в вашей компании для начала. Даже если вы хотите иметь централизованное хранилище, в котором все работают (плохая идея), конечно, не каждый сможет создавать производственные теги ( очень плохо идея). Это просто анти-паттерн, который приводит к таким проблемам.

Вместо этого наилучший подход состоит в том, чтобы один или несколько разработчиков / менеджеров просматривали и принимали изменения (обычно называемые запросами на извлечение). Таким образом, вы гарантируете, что ошибки не могут просто пройти, и что по крайней мере некоторая степень обзора происходит. Кроме того, у вас также может быть бот, который просматривает запросы на получение таких вещей; в черновой стадии, а не в окончательном слиянии. Для управления PR используйте либо известное программное обеспечение / платформы, либо подход на основе электронной почты, как в ядре Linux.

Наконец, еще один момент: если тег был создан, и это публичный репозиторий (или репозиторий, к которому могут обращаться другие люди, например, ваши клиенты), вам действительно не следует его удалять. Те же принципы, что и не удалять историю, которая уже была опубликована публично. Устаревайте старый тег и создавайте новый, который заменяет его, это лучший подход.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...