Erste Schritte mit Git im Windows-Subsystem für Linux

Git ist das gängigste Versionskontrollsystem. Mit Git können Sie Änderungen an Dateien nachverfolgen. Hierzu werden die ausgeführten Aktionen dokumentiert, und Sie haben bei Bedarf die Möglichkeit, frühere Versionen der Dateien wiederherzustellen. Git erleichtert auch die Zusammenarbeit, indem Änderungen von mehreren Personen zu einer einzelnen Quelle zusammengeführt werden können.

Installation von Git unter Windows UND in WSL möglich

Wichtig: Wenn Sie WSL aktivieren und eine Linux-Distribution installieren, installieren Sie ein neues Dateisystem, das vom Windows-NTFS-Laufwerk „C:\“ auf Ihrem Computer getrennt ist. Unter Linux erhalten Laufwerke keine Buchstaben. Sie erhalten Bereitstellungspunkte. Im Falle von WSL ist das Stammverzeichnis Ihres Dateisystems (/) der Bereitstellungspunkt Ihrer Stammpartition (oder des entsprechenden Ordners). Nicht alles unter / ist das gleiche Laufwerk. Auf meinem Laptop habe ich beispielsweise zwei Versionen von Ubuntu (20.04 und 18.04) sowie Debian installiert. Wenn ich diese Distributionen öffne, das Basisverzeichnis mithilfe des Befehls cd ~ auswähle und dann den Befehl explorer.exe . eingebe, wird der Windows-Datei-Explorer geöffnet und zeigt den Verzeichnispfad für die entsprechende Distribution an.

Linux-Distribution Windows-Pfad für den Zugriff auf den Basisordner
Ubuntu 20.04 \\wsl$\Ubuntu-20.04\home\username
Ubuntu 18.04 \\wsl$\Ubuntu-18.04\home\username
Debian \\wsl$\Debian\home\username
Windows PowerShell C:\Users\username

Tipp

Wenn Sie über die Befehlszeile der WSL-Distribution auf das Windows-Dateiverzeichnis zugreifen möchten, verwenden Sie nicht C:\Users\username, sondern /mnt/c/Users/username, da die Linux-Distribution Ihr Windows-Dateisystem als eingebundenes Laufwerk behandelt.

Sie müssen Git in jedem Dateisystem installieren, mit dem Sie es verwenden möchten.

Anzeigen von Git-Versionen nach Distribution

Installieren von Git

Git ist bei den meisten Distributionen des Windows-Subsystems für Linux bereits installiert. Es empfiehlt sich aber gegebenenfalls, ein Update auf die neueste Version durchzuführen. Außerdem müssen Sie Ihre Git-Konfigurationsdatei einrichten.

Informationen zum Installieren von Git finden Sie auf der Git-Downloadwebsite für Linux. Jede Linux-Distribution verfügt über einen eigenen Paket-Manager und einen eigenen Installationsbefehl.

Geben Sie für die neueste stabile Git-Version unter Ubuntu/Debian den folgenden Befehl ein:

sudo apt-get install git

Hinweis

Installieren Sie ggf. auch Git für Windows, falls Sie das noch nicht getan haben.

Einrichten der Git-Konfigurationsdatei

Um Ihre Git-Konfigurationsdatei einzurichten, öffnen Sie eine Befehlszeile für die verwendete Distribution, und legen Sie mithilfe des folgenden Befehls Ihren Namen fest. Ersetzen Sie dabei „Your Name“ durch Ihren bevorzugten Benutzernamen:

git config --global user.name "Your Name"

Legen Sie mithilfe des folgenden Befehls Ihre E-Mail-Adresse fest. Ersetzen Sie dabei „youremail@domain.com“ durch Ihre bevorzugte E-Mail-Adresse:

git config --global user.email "youremail@domain.com"

Tipp

Wenn Sie noch kein GitHub-Konto haben, können Sie sich bei GitHub registrieren. Wenn Sie noch nie zuvor mit Git gearbeitet haben, können Sie GitHub-Leitfäden für den Einstieg nutzen. Wenn Sie Ihre Git-Konfiguration bearbeiten möchten, können Sie dafür einen integrierten Text-Editor wie nano verwenden: nano ~/.gitconfig.

Es empfiehlt sich, das Konto mit Zwei-Faktor-Authentifizierung (Two-Factor Authentication, TFA) zu schützen.

Einrichtung von Git Credential Manager

Git Credential Manager (GCM) ist ein sicheres Hilfsprogramm für Git-Anmeldeinformationen, das auf .NET basiert und sowohl mit WSL 1 als auch mit WSL 2 verwendet werden kann. Es ermöglicht die Unterstützung der Multi-Faktor-Authentifizierung für GitHub-Repositorys, Azure DevOps, Azure DevOps Server und Bitbucket.

GCM wird in den Authentifizierungsablauf für Dienste wie GitHub integriert und fordert ein neues Authentifizierungstoken an, sobald Sie bei Ihrem Hostinganbieter authentifiziert sind. Anschließend wird das Token sicher in der Windows-Anmeldeinformationsverwaltung gespeichert. Nach dem ersten Mal können Sie Git verwenden, um mit Ihrem Hostinganbieter zu kommunizieren, ohne sich erneut authentifizieren zu müssen. Er greift einfach auf das Token in Windows-Anmeldeinformationsverwaltung zu.

Um GCM mit WSL verwenden zu können, ist mindestens die Version 1903 von Windows 10 erforderlich. Dies ist die erste Version von Windows, die das erforderliche Tool wsl.exe enthält, das GCM für die Zusammenarbeit mit Git in Ihren WSL-Distributionen verwendet.

Es empfiehlt sich, die neueste Version von Git für Windows zu installieren, um Anmeldeinformationen und Einstellungen zwischen WSL und dem Windows-Host zu teilen. Git Credential Manager ist in Git für Windows enthalten, und neue Releases von Git für Windows beinhalten jeweils die aktuelle Version. Während der Installation werden Sie aufgefordert, ein Hilfsprogramm für Anmeldeinformationen auszuwählen, wobei GCM als Standardoption festgelegt ist.

Wenn Sie Git für Windows aus irgendeinem Grund nicht installieren möchten, können Sie GCM als Linux-Anwendung direkt in Ihrer WSL-Distribution installieren. Beachten Sie jedoch, dass GCM als Linux-Anwendung ausgeführt wird und die Authentifizierungs- oder Anmeldeinformationsspeicherfeatures des Windows-Hostbetriebssystems nicht nutzen kann. Eine Anleitung zum Konfigurieren von WSL ohne Git für Windows finden Sie im GCM-Repository.

Um GCM für die Verwendung mit einer WSL-Distribution einzurichten, öffnen Sie Ihre Distribution, und geben Sie den folgenden Befehl ein:

Bei einer installierten Git-Version >= v2.39.0 lautet der Befehl:

git config --global credential.helper "/mnt/c/Program\ Files/Git/mingw64/bin/git-credential-manager.exe"

Bei einer installierten Git-Version >= v2.36.1 lautet der Befehl:

git config --global credential.helper "/mnt/c/Program\ Files/Git/mingw64/libexec/git-core/git-credential-manager.exe"

Bei einer installierten Version < v2.36.1 lautet der Befehl:

git config --global credential.helper "/mnt/c/Program\ Files/Git/mingw64/bin/git-credential-manager-core.exe"

Hinweis

Wenn Sie GCM als Hilfsprogramm für Anmeldeinformationen für eine WSL-Git-Installation verwenden, werden in WSL-Git festgelegte Konfigurationen von GCM (standardmäßig) NICHT berücksichtigt. Das liegt daran, dass GCM als Windows-Anwendung ausgeführt wird und daher die Installation von Git für Windows zum Abfragen der Konfiguration verwendet. Folglich müssen Angaben wie Proxyeinstellungen für GCM sowohl in Git für Windows als auch in WSL-Git festgelegt werden, da sie in verschiedenen Dateien gespeichert sind (%USERPROFILE%\.gitconfig bzw. \\wsl$\distro\home\$USER\.gitconfig). Sie können WSL so konfigurieren, dass GCM die WSL-Git-Konfiguration verwendet. Das bedeutet allerdings, dass Proxyeinstellungen für die WSL-Installation spezifisch sind und nicht für andere oder für den Windows-Host freigegeben werden.

Git mit SSH

Git Credential Manager funktioniert nur mit HTTP(S)-Remotevorgängen. Git kann weiterhin mit SSH verwendet werden:

Zusätzliche Konfiguration für Azure

Wenn Sie mit Azure Repos oder mit Azure DevOps arbeiten möchten, sind einige zusätzliche Konfigurationsschritte erforderlich:

git config --global credential.https://dev.azure.com.useHttpPath true

Nun wird für jeden Git-Vorgang, den Sie in Ihrer WSL-Distribution ausführen, GCM verwendet. Wenn Sie bereits Anmeldeinformationen für einen Host zwischengespeichert haben, greifen Sie über die Anmeldeinformationsverwaltung auf diese zu. Andernfalls erhalten Sie eine Dialogfeldantwort, in der Ihre Anmeldeinformationen angefordert werden, auch wenn Sie sich in einer Linux-Konsole befinden.

Tipp

Wenn Sie einen GPG-Schlüssel für Sicherheit beim Codesignieren verwenden, müssen Sie möglicherweise Ihren GPG-Schlüssel Ihrer GitHub-E-Mail-Adresse zuordnen.

Hinzufügen einer GITIGNORE-Datei

Es empfiehlt sich, Ihrem Projekt eine GITIGNORE-Datei hinzuzufügen. GitHub bietet eine Sammlung nützlicher GITIGNORE-Vorlagen mit empfohlenen GITIGNORE-Dateisetups – strukturiert nach Anwendungsfall. Hier finden Sie beispielsweise die GITIGNORE-Standardvorlage von GitHub für ein Node.js-Projekt.

Wenn Sie ein neues Repository auf der GitHub-Website erstellen möchten, stehen Kontrollkästchen zur Verfügung, um Ihr Repository mit einer Infodatei, mit einem GITIGNORE-Dateisetup für Ihren spezifischen Projekttyp und mit Optionen zum Hinzufügen einer Lizenz zu initialisieren.

Git und VS Code

Visual Studio Code bietet integrierte Git-Unterstützung, einschließlich einer Registerkarte für die Quellcodeverwaltung, auf der Ihre Änderungen angezeigt und verschiedene Git-Befehle für Sie gehandhabt werden. Weitere Informationen zur Git-Unterstützung von VS Code finden Sie hier.

Git-Zeilenenden

Wenn Sie zwischen Windows, WSL oder einem Container den gleichen Repositoryordner verwenden, müssen Sie unbedingt konsistente Zeilenenden einrichten.

Da Windows und Linux standardmäßig unterschiedliche Zeilenenden verwenden, meldet Git unter Umständen eine große Anzahl geänderter Dateien, obwohl sich eigentlich nur die Zeilenenden unterscheiden. Um dies zu verhindern, können Sie die Konvertierung von Zeilenenden deaktivieren – entweder mithilfe einer Datei vom Typ .gitattributes oder global aufseiten von Windows. Informationen zum Beheben von Problemen mit Git-Zeilenenden finden Sie in diesem VS Code-Dokument.

Zusätzliche Ressourcen