Как я могу просмотреть или обезопасить удаленные ветки? - PullRequest
1 голос
/ 13 июня 2011

В моем проекте я создал новую ветку для новой функции, завершил ее и объединил ветку с моей веткой разработки. Затем я следовал инструкциям по удалению ветки локально и в моем репозитории на github origin.

Затем я заметил, что все упоминания о моей ветке, как локальные, так и удаленные, полностью исчезли. Я не вижу никаких признаков того, что ветвь существовала в какой-то момент времени. Это страшно, потому что, если я привлечу другого разработчика (или, черт возьми, если я даже сделаю это), и вместо удаления ветки функций в GitHub он удалит ветку разработки. Единственное указание, которое у меня будет, - это появление одной ветви без указания причины.

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

Поскольку я не могу найти способ сделать это, есть ли способ хотя бы обезопасить, кому разрешено удалять ветку, а кому нет доступа к ней? Или есть способ просмотреть удаленные ветки?

Ответы [ 2 ]

2 голосов
/ 13 июня 2011

Удаление ветки в git действительно удаляет ветку.Если это не то, что вы хотите сделать, не удаляйте ветку.Однако удаление ветки само по себе не удаляет историю вашего проекта;он просто удаляет ссылку на конец ветки.Все коммиты на ветке все еще там;просто нет очевидного способа их найти.

Вы не можете помешать кому-либо, имеющему доступ к вашему хранилищу, удалить ветку.Вот почему в github каждый человек обычно имеет свой собственный репозиторий для работы. Если ветка удалена, это вы сделали.

Если вы удалили ветку самостоятельно по ошибке, вы можетеполучите его обратно, если вы знаете идентификатор коммита кончика ветви (который будет записан в коммите, где вы слили его в свою основную линию разработки, или в reflog).Создайте и извлеките новую ветвь с именем удаленной ветки и используйте git reset, чтобы снова связать это имя ветки с коммитом tip.

Судя по вашему вопросу, вы хотите отслеживать состояниеветви навсегда.Правильный способ сделать это - создать тег в конце ветви.Затем вы можете удалить ветку, но ссылка на подсказку (и всю ее историю) останется в теге.

2 голосов
/ 13 июня 2011

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

...