Попытка зафиксировать GitHub с помощью powershell приводит к фатальной ошибке: невозможно получить доступ к «Microsoft.PowerShell.Core\FileSystem».

Я хочу запустить скрипт powershell, чтобы время от времени автоматически нажимать на git.

У меня установлен GitHub для Windows. Если я запускаю Git Shell, открывается оболочка powershell, но в ней установлена ​​функция git, и она запускается в C:\Users\crclayton\Desktop\GitHub>, а не в H:\>

Если я попытаюсь использовать git в обычном PowerShell, он скажет мне, что git не распознается как функция. Однако, если я загружаю скрипт C:\Users\crclayton\AppData\Local\GitHub\shell.ps1 в обычном powershell, я могу использовать git, но когда я перехожу к папке и пытаюсь add или commit или push, я получаю сообщение об ошибке:

git.exe : фатальный: невозможно получить доступ

«Microsoft.PowerShell.Core\FileSystem::\mypath../.config/git/config»: неверный аргумент в

C:\Users\crclayton\Desktop\autogit.ps1:7 символ:4

  • git ‹‹‹‹ добавить *

  • CategoryInfo : NotSpecified: (фатальный: невозможно t...nvalid аргумент: строка) [], RemoteException

  • FullyQualifiedErrorId: NativeCommandError

Это мой код:

#(Resolve-Path "$env:LOCALAPPDATA\GitHub\shell.ps1") # tried this, doesn't work
C:\Users\crclayton\AppData\Local\GitHub\shell.ps1

$msg = Read-Host "Enter commit msg"

cd "C:\Users\crclayton\project\"
git add *
git commit -a -m $msg
git push origin master

Может ли кто-нибудь увидеть, что не так, или предложить альтернативу? Заранее спасибо.


person Charles Clayton    schedule 24.02.2015    source источник


Ответы (2)


Если вы хотите использовать команды git внутри скрипта powershell, убедитесь, что у вас есть запись в переменной среды «Путь» с фактическим путем к git. В моем случае это выглядит так, как показано на прикрепленной картинке!:

Путь к переменной среды

В любом случае, этот параметр был автоматически добавлен при установке Git Extensions. Если вы не используете расширения, просто добавьте эту строку в переменную «Путь» либо вручную, либо из скрипта powershell.

Надеюсь, это поможет

person Volodymyr Daiev    schedule 26.02.2015
comment
Спасибо! Это сработало, но только после того, как я нашел git.exe в следующей папке: C:\Users\crclayton\AppData\Local\GitHub\PortableGit_c2ba306e536fdf878271f7fe636a147ff37326ad\bin. - person Charles Clayton; 12.03.2015

Github для Windows использует posh-git, поэтому вы можете подтвердить, что вы следуете установке вручную для использования powershell.

Убедитесь, что выполнение сценариев разрешено с помощью Get-ExecutionPolicy (должно быть RemoteSigned или Unrestricted). Если сценарии не включены, запустите PowerShell от имени администратора и вызовите Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Confirm.

person talves    schedule 25.02.2015