Я перенес свои репозитории с Bitbucket или Github. Я не думаю, что это имеет значение, но это единственное, что изменилось ... Некоторое время у меня было два пульта дистанционного управления:
origin: bitbucket
github: github
Затем я удалил оба и указал происхождение на github:
git remote remove origin
git remote remove github
git remote add origin https://github....
Тестовый толчок ветки разработки:
git push origin develop
Все в актуальном состоянии, хорошо, хорошо.
Создайте новую ветку для работы как обычно:
git checkout -b Feature/Name
Обновите файл или два. Попытка нажать на удаленный:
git push origin Feature/Name
Это приводит к ошибке:
фатальный: функция / имя не может быть преобразовано в ветку
Найдите в Интернете эту проблему, найдите кое-что о том, чтобы убедиться, что HEAD верен, другие о том, чтобы убедиться, что у меня правильный регистр имени ветки (хотя на данный момент ветка еще не существует на пульте дистанционного управления). Невозможно решить.
Выполните эту команду:
git push --all -u
Это привело мою Feature/Name
ветку к github, но все еще вижу то же поведение, что и раньше:
git push origin develop
git push origin Feature/Name
Первый работает, второй выдает ту же ошибку.
Я не могу понять, почему я получаю эту ошибку. Любые идеи?
Feature/Name
? Вы уверены, чтоFeature/Name
существует и это проверенная ветка? Проверить сgit branch
.git branch
проверить,Feature/Name
существует ли локально? Не доверяйте графическому интерфейсу или IDE. Кроме того, вы правильно поняли корпус?git push origin Feature/Name:Feature/Name
?git push --all -u
меня есть новая ветка в github, но все еще не удается нажать с локального компьютера, верно? Вот что с этим произошло ... настоящее имя веткиSQLMigration/ReportFixes
и то, что есть в githubSqlMigration/ReportFixes
. Итак, теперь я могуgit push origin SqlMigration/ReportFixes
- почему github меняет за меня корпус? Ах.Ответы:
У меня тоже была эта проблема, и это сводило меня с ума. У меня было что-то вроде,
feature/name
ноgit branch -a
мне показалиFEATURE/name
. Переименование ветки, удаление и воссоздание ее, ничего не помогло. Что окончательно исправило:Войти в
.git/refs/heads
Вы увидите
FEATURE
папку. Переименуйте его вfeature
.источник
Основываясь на моем собственном тестировании и комментариях OP , я думаю, что в какой-то момент они обманули корпус имени ветки.
Во-первых, я считаю, что OP находится в операционной системе, нечувствительной к регистру, такой как OS X или Windows. Потом сделали что-то вроде этого ...
Обратите внимание на разницу в корпусе. Также обратите внимание, что ошибка сильно отличается от ошибки, если вы просто опечатаете имя.
Поскольку Github использует файловую систему для хранения имен веток, он пытается открыть
.git/refs/heads/SqlMigration/ReportFixes
. Поскольку файловая система нечувствительна к регистру, она успешно открывается,.git/refs/heads/SqlMigration/ReportFixes
но сбивается с толку, когда пытается сравнить имена веток с учетом регистра и они не совпадают.Как они попали в состояние, когда локальная ветка,
SQLMigration/ReportFixes
а удаленная ветка -SqlMigration/ReportFixes
я не уверен. Я не верю, что Github испортил имя удаленной ветки. Самое простое объяснение: кто-то другой с push-доступом изменил имя удаленной ветки. В противном случае в какой-то момент они сделали что-то, из-за чего удалось создать пульт с опечаткой. Если они проверит историю своей оболочки, возможно,history | grep -i sqlmigration/reportfixes
они смогут найти команду, в которой они опечатали корпус.источник
Git позволит вам проверить текущую ветку с другим регистром, и он не сможет найти ссылку на пульте дистанционного управления.
Только что узнал на собственном горьком опыте.
источник
> git branch
и убедиться, что рядом с вашей веткой стоит *.Подобное случилось и со мной. Я создал ветку под названием «Feat / name». Я попытался подтолкнуть его, используя:
У меня такая же фатальная ошибка, как и у вас:
Чтобы решить эту проблему, я создал новую ветку, так как у меня было очень мало файлов. Затем я перечислил свои ветки, чтобы удалить неправильную, и она отображается без шапки:
Раньше я использовал кепки, но никогда не использовал первый знак. Похоже, мерзавцу это не нравится ...
источник
Это чувствительно к регистру, просто убедитесь, что созданная ветка и нажатие на ветку находятся в одной и той же столице.
Пример:
НЕПРАВИЛЬНЫЙ способ сделать:
ПРАВИЛЬНЫЙ способ сделать:
источник
Может, вы забыли запустить git fetch? это необходимо для получения данных из удаленного репо! Попробуйте бежать
git fetch remote/branch
источник
В моем случае у меня была папка ветки (или как она там называется) с заглавными буквами, затем я создаю новую с разным регистром (нижний регистр), но git фактически создает ветку с заглавной буквы.
Я создал ветку, как
feature-ABC/branch1
раньше, и нажал на нее. Затем я создаю веткуfeature-abc/branch2
(обратите внимание на строчные буквы ABC) и пытаюсь передать ее на удаленное использованиеgit push --set-upstream origin feature-abc/branch2
и получаю ошибку «не удается разрешить ветвь». Вот яgit branch
и вижу, что он действительно созданfeature-ABC/branch2
вместоfeature-abc/branch1
меня. Я снова оформляю заказ с помощьюgit checkout feature-ABC/feature2
и нажимаю на заглавные буквы (feature-ABC/feature2
), чтобы решить эту проблему.источник
Я столкнулся с той же проблемой, которая была связана с переходом на ветвь с неправильным корпусом. git позвольте мне переключиться на ветку с неправильным регистром, т.е.
feature/Name
вместоfeature/name
. Нашел более простое решение, чем перечисленное выше:git checkout master (or develop)
git checkout feature/name
<с правильным корпусомgit push
источник
Я решил это в Windows 10, используя cmd вместо GitBash .
Это связано с регистром символов и тем, как git и командные строки обрабатывают их.
источник
Возможно, вы создали аналогичную ветку, но другую с учетом регистра, тогда вам нужно запустить:
git branch -D <name-of-different-case-branch>
а затем попробуйте нажать еще раз.
источник
Слегка измененный ответ @Ty Le:
мне не требовалось никаких изменений в файлах - у меня была ветка с именем «Feature / ...», и при продвижении вверх по течению я изменил заголовок на «feature / ...» (регистр первой буквы был изменен на нижний ).
источник
У меня тоже была эта проблема, и мои обычные ветки начинаются с,
pb-3.1-12345/namebranch
но я случайно сделал первые 2 буквы заглавнымиPB-3.1/12345/namebranch
. После переименования ветки, чтобы использовать строчные буквы, я мог создать ветку.источник
для меня я называл ветку как
все, что мне нужно было сделать, это использовать
написать
поскольку я использовал для создания веток строчную букву r в отн.
Итак, что вызвало эту проблему?
когда я перечислял
.git/refs/heads
контент, который нашелно нет
Relx.x
!и внутри него
bug
и внутри имениbug
моей ветки.Итак, git попробуйте создать каталог с тем же именем, но с разными регистрами
но система не чувствительна к регистру.
Вот что вызвало эту проблему!
источник
Была такая же проблема с другим корпусом.
Сделал проверку для разработки (или мастера), а затем изменил имя (неправильное имя) на что-то другое, например test.
затем измените имя обратно на правильное имя
затем оформить заказ в ветку с правильным именем
затем он работал, чтобы нажать на удаленную ветку
источник
Для меня проблема заключалась в том, что у меня git и моя файловая система macOS были настроены на две разные чувствительности к регистру. Мой Mac был отформатирован APFS / чувствителен к регистру: НЕТ, но в какой-то момент я перевернул настройки git, пытаясь решить странную проблему с именами ресурсов изображения Xcode, поэтому git config --global core.ignorecase false . Перевернув его назад, выровнял настройки, воссоздав ветку и нажав на нее, я вернулся в нужное русло.
git config --global core.ignorecase true
Кредит: https://www.hanselman.com/blog/GitIsCasesensitiveAndYourFilesystemMayNotBeWeirdFolderMergingOnWindows.aspx
источник
У меня была такая же проблема, но она решилась. Я понял, что имя ветки чувствительно к регистру. Основная ветвь в GitHub - это master, а в моей команде gitbash - Master. Я переименовал Master в локальном репозитории в master, и это сработало! 😀😀
источник
Я столкнулся с той же проблемой и заметил, что перепутал корпус при проверке ветки. Я выписался
branchName
вместо,BranchName
и когда я попытался нажать на удаленный, я получил ту же ошибку.Исправление:
Установив правильное имя в восходящем потоке, правильная ветка была обновлена на github, и затем я смог проверить правильное имя ветки с помощью
И он должен быть в курсе вашего последнего нажатия.
источник
Если вы находитесь в локальной ветке, можете переименовать ветку «Feature / Name» в «feature / Name».
git -m feature/Name
если у вас есть проблемы с
git push
оформлением заказа в другой ветке (например, разработка) и возвращением в переименованную веткуgit checkout feature/Name
и попробуйте еще раз свой
git push
источник