В Git ветка - это просто упорядоченный список коммитов (иначе: checkins). Что-то, что может немного сбить с толку новых пользователей, заключается в том, что ветвям не нужно иметь имя (хотя в большинстве случаев вы его хотите); и нет ничего особенно особенного в любой конкретной ветке ( master
ветка - это просто ветка по умолчанию, которая создается для вас при инициализации репозитория).
Вы, вероятно, уже знаете это, но Git отличается от некоторых других систем контроля версий, таких как популярная «Subversion», потому что каждая «рабочая копия» (на языке Subversion) является собственным репозиторием ... на самом деле, нет ничего особенно специальные о любой конкретной копии; за исключением того, что одна копия была в целом согласована как «каноническая» копия, которая используется для хранения конечного продукта.
Итак, вернемся к вашему вопросу ... «канонический» репозиторий, который вы клонировали при запуске локальной копии, по умолчанию содержал «главную» ветку; и он застрял Теперь, если у вас был доступ к компьютеру, на котором находится главный репозиторий, вы можете войти и запустить:
git branch -d master
Однако, если вы не можете этого сделать, вы все равно можете сделать это с локального компьютера. У git branch
команды есть -r
опция, которая влияет на удаленный репозиторий. Другими словами, выполнение следующей команды должно работать:
git branch -d -r master
Обратите внимание, что в обоих этих случаях; Я предполагаю, что master
он полностью слился с историей разработки, в которой сейчас находится ваша локальная копия. Если вы никогда не использовали master
ранее (то есть: вы когда-либо только регистрировались в development
или production
), вам не о чем беспокоиться. Однако, если вы (или кто-то еще) проверяли вещи master
, то у вас может быть проблема. Вы можете заставить удаление путем изменения -d
к -D
в приведенных выше командах; но я настоятельно рекомендую проверить, чтобы увидеть, что в master
заранее! Если у вас нет доступа к удаленному компьютеру, вы, вероятно, не сможете его восстановить!
Кстати; Если вы (или кто-то еще) новичок в Git, я настоятельно рекомендую прочитать Git from the Bottom Up Джона Вигли . Несмотря на то, что я сам немного использовал Git, прежде чем нашел эту статью, я не понимал, как она работает, пока не прочитал ее. Это довольно полезно!
git branch -d -r master
удаленная ветка больше не удаляется - она удаляет знание вашей локальной копии об удаленной ветке. В следующий раз выgit fetch
вернётесь! Вместо этого вы захотите бежатьgit push origin :master
. По сути, здесь вы толкаете пустую ветку (имя пустой ветви слева от:
) поверх удаленной ветви (имя ветви справа от:
), эффективно удаляя ее.master
является веткой по умолчанию для git. Я не знаю, почему для вас так ужасно, когда git сообщает вам, как далеко вы от мастера, но если вы хотите удалить ветку в вашем удаленном репозитории, локального удаления недостаточно. Попробуйте это вместо этого:Это ничего не вытолкнет (часть перед двоеточием) на ваш исходный сервер и перезапишет мастер. Другими словами, он должен удалить главную ветку удаленно.
источник