Я использую Windows 10 64bit и Git для Windows 2.20.1. Я обычно использую git через Visual Studio (в основном без проблем). Единственный раз, когда я использую git из командной строки, это когда мне нужно нажать на теги.

Проблема заключается в том, что при git push на Git Bash (эмуляция BASH на cmd.exe) появляется следующее сообщение об ошибке:

git: 'remote-Z' is not a git command. See 'git --help'.
The most similar command is
   remote-fd

как будто я набрал git remote-Z . Насколько я пытался, любые конечные опции приводили к той же ошибке, за исключением --help , который открывал локальную копию «git-push(1) Manual Page» в моем браузере.

Как мне заставить работать git push снова или даже устранить эту проблему?

До сих пор я перезагружал систему, переустанавливал Git для Windows (до последней версии), убедился, что D:\Program Files\Git\cmd находится в значении системной среды Path (я даже поместил его в начало списка), но не повезло. Googling git remote-Z тоже не помог в этот момент.

Вот что я проверил:

  • Я проверил конфигурационные файлы (системные, глобальные и локальные). Никто из них не имеет ничего общего с alias .
  • $ git --exec-path возвращает D:/Program Files/Git/mingw64/libexec/git-core . Каталог полон исполняемых файлов git, и я позаботился о том, чтобы git-push.exe был там.
  • Что меня больше всего озадачивает, так это то, что когда я cd в локальный репозиторий и запускаю "D:\Program Files\Git\mingw64\libexec\git-core\git-push.exe" , то же сообщение об ошибке git: 'remote-Z' is not a git command. появляется. Я удостоверился, что переустановил все исполняемые файлы, но проблема сохраняется.
  • Однако, когда я git push за пределами git-репозитория, появляется это сообщение: fatal: not a git repository (or any of the parent directories): .git - как если бы команда работала нормально.
  • Я использую репозитории, созданные Visual Studio 2015.
  • Путь к локальному репозиторию не содержит многобайтовых символов, но путь к удаленному источнику (который находится в сетевой папке моей компании) делает. Имеет ли это значение?

2 ответа2

0

Это в одном Git-репозитории в вашей системе или во всех Git-репозиториях?

У меня такое ощущение, что вы как-то устанавливаете испорченный пульт на одном репо, и теперь remote-Z (или что-то, что каким-то образом запускает эти символы) находится в конфигурации конкретного репо, с которым вы боретесь. Это основано на том, что вы говорите здесь:

«Однако, когда я git push за пределами git-репозитория, появляется это сообщение: fatal: not a git repository (or any of the parent directories): .git - as if the command is working normally. »

Если вы не получите это сообщение за пределами хранилища, все это указывает на проблему со специфической конфигурацией Git этого хранилища.

Проверьте, какие пульты установлены, выполнив следующую команду: git remote -v . Более подробную информацию о взаимодействии с пультами можно найти здесь . Вы также можете вручную проверить файл config в вашей директории .git в корне проекта, так как в основном это просто текстовый файл. В macOS и Linux он находится в .git/config поэтому поищите что-нибудь в аналогичном месте в вашей настройке Windows; это должно показать некоторую информацию, которая может быть полезна.

0

Комментарий JakeGould привел меня к ответу. В файле конфигурации каждого репозитория [remote "origin"] было установлено так:

[remote "origin"]
    url = Z:///path\\to\\MyRepo.git

Изменение url на

    url = Z:/path/to/MyRepo.git

или же

    url = Z:\\path\\to\\MyRepo.git

снова все заработало, как в командной строке, так и в Visual Studio. (Обратные слеши были автоматически удвоены Visual Studio.)

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

Мне кажется, что когда была проанализирована смесь косых черт выше, буква диска Z как-то слилась с [remote "origin"] прямо перед ним, что привело к remote-Z и таинственно удаленному push я набрал. Не уверен, как результат парсинга оказался таким.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .