Подтвердить что ты не робот

Git "не удалось определить абсолютный путь каталога Git"

Я новичок git и у меня проблемы с получением последней версии удаленного проекта:

S:\dev\prj\myprj [master]> git pull
/usr/libexec/git-core/git-sh-setup: line 266: cd: .git: No such file or directory
Unable to determine absolute path of git directory

Он работал отлично до сегодняшнего дня и, как ни странно, я не думаю, что я что-то изменил, так как он работал нормально.

Это в Windows 7. Мой проект находится на зашифрованном диске (S:) и git находится на C:

S:\dev\prj\myprj [master]> git --exec-path    
C:\Users\matt\AppData\Local\GitHub\PortableGit_656cc1ef6d04f06ddf8b2f5bedbac921caed3b62/libexec/git-core

Ручное выполнение cd в директории exec выше работает отлично (хотя есть смешанные типы слэш).

Любые идеи, как даже начать разрабатывать то, что пошло не так?

4b9b3361

Ответ 1

Нашел решение/обходное решение! Ура!

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

Причина, по которой это было неудачно для меня, заключалась не только в том, что мой проект был на зашифрованном диске, но, что более важно, иногда я запускал GitHub для Windows перед установкой зашифрованного диска (который я вручную монтирую). Даже если я закрою GitHub для Windows, а затем закрепите зашифрованный диск, а затем перезапустите GitHub для Windows, он все равно вернется с вышеуказанной ошибкой, поэтому, возможно, не все, что GitHubby закрывает, когда я закрываю GitHub для Windows.

Обходной путь для меня:

  • Перезагрузка
  • Консоль накопителя, содержащего проект
  • Запустить GitHub для Windows

... в этом порядке.

Ответ 2

Убийство процесса ssh-agent.exe работает для меня.
Примечание: он называется sh.exe в новых версиях SourceTree (спасибо @cowlinator)

Ответ 3

Скорее всего, вы используете PowerShell и подключенный сетевой диск. PowerShell "помогает" отменяет отображение, поэтому каталог, переданный в Git, является UNC-контуром, который Git не понимает.

Ответ 4

Если вы используете SourceTree в Windows, попробуйте Tools- > Options → Git → Использовать систему Git