Как удалить ветвь локально?

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

Здесь есть вопросы о том, как удаленно удалять ветки локально и, но я не смог выяснить, как удалять ветвь локально.

Один ответ сказал, чтобы использовать это:

git branch -d local_branch_name

Но я попробовал это, и ветка все еще появляется в приложении GitHub.

Ответ 1

Я думаю (на основе ваших комментариев), что я понимаю, что вы хотите сделать: вы хотите, чтобы ваша локальная копия репозитория не имела ни обычной локальной ветки master, ни ветки удаленного отслеживания origin/master, даже хотя клонированный вами репозиторий - github one - имеет локальную ветвь master, которую вы не хотите удалять из версии github.

Вы можете сделать это, удалив ветвь удаленного отслеживания локально, но она будет просто возвращаться каждый раз, когда вы попросите git синхронизировать ваш локальный репозиторий с удаленным репозиторием, потому что ваш git запрашивает их git "какие у вас есть ветки", и он говорит: "У меня есть master", поэтому ваш git (re) создает для вас origin/master, так что ваш репозиторий имеет то, что у них есть.

Чтобы удалить ветвь удаленного отслеживания локально, используя интерфейс командной строки:

git branch -d -r origin/master

но опять же, он просто вернется к повторной синхронизации. Можно также победить это (используя remote.origin.fetch манипуляции), но вам, вероятно, лучше всего быть достаточно дисциплинированным, чтобы не создавать или изменять master локально.

Ответ 2

Принудительно удалить локальное отделение:

$ git branch -D <branch_name>

[ ПРИМЕЧАНИЕ ]:

"-D" - опция принудительного удаления.


Ответ 3

Приложение Github для Windows показывает все удаленные ветки репозитория. Если вы удалили ветвь локально с помощью $ git branch -d [branch_name], удаленная ветка все еще существует в вашем репозитории Github и будет отображаться независимо от приложения Windows Github.

Если вы хотите полностью удалить ветвь (удаленно), используйте приведенную выше команду в сочетании с $ git push origin :[name_of_your_new_branch]. Предупреждение: эта команда удаляет все существующие ветки и может привести к потере кода. Будьте осторожны, я не думаю, что это то, что вы пытаетесь сделать.

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

Ответ 4

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

Вы можете просто сбросить свои изменения и перезагрузить мастер с удаленного сервера:

git reset --hard origin/master

Ответ 5

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

1) Перейдите на вкладку "Настройки" своего репо на Github.

2) Нажмите "Ветви" в боковом меню слева.

3) Нажмите "Добавить правило"

4) Введите "мастер" для шаблона ветвления.

5) Снимите флажок "Требовать проверки запросов на извлечение перед объединением".

Я также рекомендовал бы сделать то же самое для вашей ветки разработчика.

Ответ 6

вам нужно переключиться на другую ветку и попробовать то же самое.

Git Branch -d