2017-06-08 28 views
5

Chciałbym użyć WSL (Bash na Windows) Git z VSCode zamiast Git dla Windows, aby uniknąć wielu instalacji Git.VSCode: użyj WSL Git zamiast Git dla Windows

Utworzono prosty skrypt na bat, aby emulować kompilację git.exe, przekierowując polecenia git w WSL. Działa dobrze w CMD, ale nie w VSCode. Ponadto WSL jest moim domyślnym terminalem w VSCode.

VSCode settings.json:

{ 
    "git.path": "D:\\tools\\git.bat", 
    "terminal.integrated.shell.windows": "C:\\Windows\\Sysnative\\bash.exe" 
} 

i git.bat:

@echo off 
bash -c 'git %*' 

Każdy pomysł, aby VSCode pracy z WSL Git?

+0

Dziwne jest dla mnie to, że to podejście działa dla ruby, rubokrata i każdego innego pliku wykonywalnego, którego próbowałem. Nie rozumiem, dlaczego to nie działa dla gita. –

Odpowiedz

5

stworzyłem małe narzędzie do rozwiązania tego dla siebie, a hosted it on GitHub.

Wygląda na to, że podstawowa funkcjonalność git działa jak przeglądanie zmian i zatwierdzanie.

Gotowy do użycia plik binarny można pobrać from the Releases page.

Jednym z problemów jest to, że ścieżki wejściowe muszą być przetłumaczone z reprezentacji Windows (C:\Foo\Bar) na ścieżki Linux w WSL (/mnt/c/Foo/Bar) iz powrotem dla ścieżek na wyjściu git.

Na przykład, wtyczka Git w VSCode używa komendy

git rev-parse --show-toplevel 

znaleźć katalogu głównego repozytorium git, ale z WSL git to oczywiście zwraca ścieżkę Linux, który musi zostać przetłumaczony na VSCode w systemie Windows.

+0

Dziękuję, twój exe działa doskonale! Nie myślałem o problemie ścieżek. Postaram się rozwiązać ten problem w moim scenariuszu i opublikować rozwiązanie tutaj, kiedy mam czas. –

0

podać pełną ścieżkę dostępu do exec bash:

git.bat:

@echo off 
c:\windows\sysnative\bash.exe -c "git %*" 
+0

To rozwiązanie niczego nie zmienia. –

Powiązane problemy