Возможно, это глупый вопрос, но я новичок в git и вижу удаленную ветку, которой больше не существует.
$ git branch -a
* master
remotes/origin/master
remotes/origin/production
Я не верю, что производственный филиал существует удаленно, и не могу понять, почему он все еще отображается локально. Как я могу удалить / удалить эту ветку? Вот как выглядит попытка удаления:
$ git push origin :production
error: unable to push to unqualified destination: production
The destination refspec neither matches an existing ref on the remote nor
begins with refs/, and we are unable to guess a prefix based on the source ref.
error: failed to push some refs to 'git@IP:puppet.git'
Я могу проверить предположительно удаленную производственную ветку, но получить это:
$ git checkout origin/production
Note: checking out 'origin/production'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b new_branch_name
HEAD is now at c323996... added powerdns module, no really
Я понятия не имею, какого черта я делаю. Любая помощь будет оценена.
git branch -a
послеgit fetch
?Ответы:
Ты должен сделать:
источник
Итак, есть две проблемы. В обоих случаях помните, что Git распространяется.
Первый. Когда вы делаете такие вещи, как
Операция выполняется на вашем локальном репо, а НЕ на удаленном компьютере. Другими словами, ваш локальный репо сообщает обо всех ветках, о которых он знает. Это могут быть локальные ветви (например, «master») или удаленные ветви, которые он извлек из удаленного узла. Со времени последней выборки ветка «production» удаленного репо изменилась, но ваше локальное репо этого не знает. Ответ от manojlds , правильный. Бегать
удалить несвежие ветви.
Команда «git push origin: production» используется для удаления ветки из git-репозитория удаленного компьютера. Не ваш местный репо. В этом случае кто-то другой уже удалил ветку на git-репозитории удаленного компьютера, поэтому вы видите это сообщение об ошибке.
Вот ссылка, которая суммирует эти команды.
Вторая проблема касается оформления заказа.
При проверке ветви вы хотите сделать это из локальной ветви, а не из удаленной ветви. Вот почему вы получаете ошибку об отделенной голове. В репозитории git-notes есть хорошее объяснение этой проблемы в мельчайших деталях. В основном ключевая фраза
Теперь, как проверить локальную ветку, такую же, как удаленная ветка?
Легко, вы создаете локальное отделение, на момент оформления заказа удаленное отделение.
источник
это правильно, просто добавив, вы можете использовать
--dry-run
опцию, которая сообщает, какие ветви будут удалены из вашего локального репо, но на самом деле не сокращает ихисточник