Nếu bạn xem xét những gì git-cmd.bat
không, tất cả các bạn cần làm là để thiết lập quyền biến %PATH%
trước khi lệnh git của bạn trong kịch bản của bạn:
Nếu không, đây là những gì bạn sẽ thấy:
C:\Users\VonC>git --version
'git' is not recognized as an internal or external command,
operable program or batch file.
Tôi chưa giải nén latest portable version of msysgit.
Đặt bất cứ nơi nào một kịch bản test.bat
(vì vậy không PowerShell tham gia có) với các nội dung sau đây:
@setlocal
@set git_install_root="C:\Users\VonC\prg\PortableGit-1.7.11-preview20120620"
@set PATH=%git_install_root%\bin;%git_install_root%\mingw\bin;%git_install_root%\cmd;%PATH%
@if not exist "%HOME%" @set HOME=%HOMEDRIVE%%HOMEPATH%
@if not exist "%HOME%" @set HOME=%USERPROFILE%
@set PLINK_PROTOCOL=ssh
REM here is the specific git commands of your script
git --version
echo %HOME%
git config --global --list
Hãy chắc chắn rằng HOME
được thiết lập một cách chính xác, bởi vì Git sẽ tìm kiếm git config toàn cầu của bạn ở đó.
Kết quả sẽ cung cấp cho bạn:
C:\Users\VonC>cd prog\git
C:\Users\VonC\prog\git>s.bat
C:\Users\VonC\prog\git>git --version
git version 1.7.11.msysgit.0
C:\Users\VonC\prog\git>echo C:\Users\VonC
C:\Users\VonC
C:\Users\VonC\prog\git>git config --global --list
user.name=VonC
Lưu ý: đó là cùng một kịch bản sẽ làm việc một cách hoàn hảo từ một phiên PowerShell.
Câu hỏi: Bạn có phiên bản git nào cho cửa sổ? Tôi đã đấu tranh với việc cài đặt msys Git để giành chiến thắng (7) nhưng một số lệnh đã mất thời gian để hoàn thành ... Bây giờ có git chỉ thông qua Cygwin. – bcelary
Tôi có 1.7.11.rc1.6953.gf229a20 - Đã được cài đặt bằng ứng dụng cửa sổ GitHub mới – Ing
Bạn có thể thực hiện các lệnh git đơn giản từ Powershell không? Nói cách khác, git shell có cần phải làm gì với git không? Nếu bạn có thể truy cập git từ Powershell, sau đó bạn có thể viết lại tập tin batch của bạn như là một kịch bản PowerShell. Ngoài ra, bạn sẽ có thể chạy tập tin batch của bạn từ Powershell, trừ khi nó đặt env vars (nếu có, tìm kiếm "Invoke-CmdScript" trên Google). – David