Freigeben über


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

Git ist das am häufigsten verwendete Versionssteuerungssystem. Mit Git können Sie Änderungen nachverfolgen, die Sie an Dateien vornehmen, sodass Sie über einen Datensatz verfügen, was getan wurde, und die Möglichkeit haben, bei Bedarf auf frühere Versionen der Dateien zurückgesetzt zu werden. Git erleichtert auch die Zusammenarbeit, sodass Änderungen von mehreren Personen in einer Quelle zusammengeführt werden können.

Git kann unter Windows UND auf WSL installiert werden

Ein wichtiger Aspekt: Wenn Sie WSL aktivieren und eine Linux-Verteilung installieren, installieren Sie ein neues Dateisystem, getrennt vom Windows NTFS C:\-Laufwerk auf Ihrem Computer. In Linux werden keine Laufwerke mit Buchstaben versehen. 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. Beispielsweise habe ich auf meinem Laptop zwei Ubuntu-Versionen (20.04 und 18.04) sowie Debian installiert. Wenn ich diese Verteilungen öffne, wählen Sie das Startverzeichnis mit dem Befehl cd ~aus, und geben Sie dann den Befehl explorer.exe .ein, der Windows-Datei-Explorer wird geöffnet und zeigt mir den Verzeichnispfad für diese Verteilung an.

Linux-Distribution Windows-Pfad für den Zugriff auf den Startordner
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 Ihrer WSL-Distribution auf das Windows-Dateiverzeichnis zugreifen möchten, wird anstatt über C:\Users\usernameüber /mnt/c/Users/usernameauf das Verzeichnis zugegriffen, da das Windows-Dateisystem von der Linux-Distribution als bereitgestelltes Laufwerk angezeigt wird.

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

Anzeigen von Git-Versionen nach Linux-Distribution

Installieren von Git

Git ist bereits mit den meisten Windows-Subsystemen für Linux-Distributionen installiert, Sie sollten jedoch auf die neueste Version aktualisieren. Außerdem müssen Sie Ihre Git-Konfigurationsdatei einrichten.

Informationen zum Installieren von Git finden Sie auf der Website Git Download für Linux. Jede Linux-Verteilung verfügt über einen eigenen Paket-Manager und installationsbefehl.

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

sudo apt-get install git

Anmerkung

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 Verteilung, in der Sie arbeiten, und legen Sie Ihren Namen mit diesem Befehl fest (ersetzen Sie "Ihr Name" durch Ihren bevorzugten Benutzernamen):

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

Legen Sie Ihre E-Mail mit diesem Befehl fest (ersetzen Sie "youremail@domain.com" durch die von Ihnen bevorzugte E-Mail):

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

Tipp

Wenn Sie noch nicht über ein GitHub-Konto verfügen, können Sie sich auf GitHubregistrieren. Wenn Sie noch nie mit Git gearbeitet haben, können GitHub-Leitfäden Ihnen bei den ersten Schritten helfen. Wenn Sie Ihre Git-Konfiguration bearbeiten müssen, können Sie dies mit einem integrierten Text-Editor wie Nano tun: nano ~/.gitconfig.

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

Konfiguration des Git-Credential-Managers

Git Credential Manager (GCM) ist ein sicheres Hilfsprogramm für Git-Anmeldeinformationen, das auf .NET basiert und mit sowohl WSL1 als auch WSL2 verwendet werden kann. Es ermöglicht die mehrstufige Authentifizierungsunterstützung für GitHub-Repositorys, Azure DevOps, Azure DevOps Server und Bitbucket.

GCM integriert sich in den Authentifizierungsfluss für Dienste wie GitHub und fordert, sobald Sie sich bei Ihrem Hostinganbieter authentifiziert haben, ein neues Authentifizierungstoken an. Anschließend speichert es das Token sicher im Windows-Anmeldeinformations-Manager. Nach dem ersten Mal können Sie Git verwenden, um mit Ihrem Hostinganbieter zu sprechen, 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, müssen Sie sich unter Windows 10 Version 1903 oder höher befinden. Dies ist die erste Version von Windows, die das erforderliche wsl.exe Tool enthält, das GCM für die Interoperabilität mit Git in Ihren WSL-Verteilungen 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. Der Git-Anmeldeinformations-Manager ist in Git für Windows enthalten, und die neueste Version ist in jeder neuen Git für Windows-Version enthalten. Während der Installation werden Sie aufgefordert, ein Hilfsprogramm für Anmeldeinformationen auszuwählen, wobei GCM als Standard festgelegt ist.

Wenn Sie einen Grund haben, Git für Windows nicht zu installieren, können Sie GCM als Linux-Anwendung direkt in Ihrer WSL-Verteilung installieren, beachten Sie jedoch, dass GCM als Linux-Anwendung ausgeführt wird und die Authentifizierungs- oder Anmeldeinformationsspeicherfunktionen des Windows-Hostbetriebssystems nicht nutzen können. 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-Verteilung einzurichten, öffnen Sie Ihre Verteilung, und geben Sie diesen 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"

ansonsten wenn Version < v2.36.1 ist, geben Sie diesen Befehl ein:

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

Anmerkung

Die Verwendung von GCM als Anmeldeinformationshilfsprogramm für eine WSL-Git-Installation bedeutet, dass alle in WSL Git festgelegten Konfigurationssätze nicht von GCM (standardmäßig) berücksichtigt werden. Dies liegt daran, dass GCM als Windows-Anwendung ausgeführt wird und daher die Git für Windows-Installation verwendet, um die Konfiguration abzufragen. Dies bedeutet, dass Proxyeinstellungen für GCM in Git für Windows und WSL Git festgelegt werden müssen, da sie in verschiedenen Dateien gespeichert werden (%USERPROFILE%\.gitconfig vs \\wsl$\distro\home\$USER\.gitconfig). Sie können WSL so konfigurieren, dass GCM die WSL-Git-Konfiguration verwendet. Dies bedeutet jedoch, dass Proxyeinstellungen für die spezifische WSL-Installation eindeutig sind und nicht für andere benutzer oder den Windows-Host freigegeben werden.

Git mit SSH

Git Credential Manager funktioniert nur mit HTTP(S)-Remotes. Sie können Git weiterhin mit SSH verwenden:

Zusätzliche Konfiguration für Azure

Wenn Sie mit Azure Repos oder Azure DevOpsarbeiten möchten, ist eine zusätzliche Konfiguration erforderlich:

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

Jetzt verwendet jeder Git-Vorgang, den Sie in Ihrer WSL-Verteilung ausführen, GCM. Wenn Sie bereits Anmeldeinformationen für einen Host zwischengespeichert haben, wird sie über den Anmeldeinformations-Manager darauf zugreifen. Wenn nicht, erhalten Sie eine Dialogantwort, die Ihre Anmeldeinformationen anfordert, 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 Git Ignore-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 ist beispielsweise die Standard-gitignore-Vorlage von GitHub für ein Node.js Projekt.

Wenn Sie sich entscheiden, ein neues Repository mithilfe der GitHub-Website zu erstellen, stehen Kontrollkästchen zum Initialisieren Ihres Repositorys mit einer README-Datei, gitignore-Datei, die für Ihren jeweiligen Projekttyp eingerichtet ist, und Optionen zum Hinzufügen einer Lizenz bei Bedarf zur Verfügung.

Git- und VS-Code

Visual Studio Code bietet integrierte Unterstützung für Git, einschließlich einer Registerkarte für quellcodeverwaltung, die Ihre Änderungen anzeigt und eine Vielzahl von Git-Befehlen für Sie behandelt. Erfahren Sie mehr über die Git-Unterstützung von VS Code .

Git-Zeilenenden

Wenn Sie mit demselben Repositoryordner zwischen Windows, WSL oder einem Container arbeiten, müssen Sie konsistente Zeilenendungen einrichten.

Da Windows und Linux unterschiedliche Standardzeilenenden verwenden, meldet Git möglicherweise eine große Anzahl geänderter Dateien, die keine Unterschiede neben ihren Zeilenenden aufweisen. Um dies zu verhindern, können Sie die Konvertierung von Zeilenenden mithilfe einer .gitattributes-Datei oder global auf der Windows-Seite deaktivieren. Lesen Sie dieses VS Code-Dokument zum Beheben von Git-Zeilenendungsproblemen.

Weitere Ressourcen