So verwalten Sie mehr als ein Git-Repository in VS Code

Lesezeit: 3 Minuten

Benutzeravatar von Brand Shaw
Marke Shaw

Ich muss mit einem Verzeichnis wie diesem arbeiten:

ProjectRoot
|---- SubDirectory1
|---- SubDirectory2(Git Repository1)
|---- SubDirectory3(Git Repository2)
|---- ...
|---- Files

Ich habe jedoch festgestellt, dass die eingebettete Git-Funktion von VS-Code die von Git verwalteten Unterverzeichnisse nicht automatisch erkennt.

Wie kann man dieses Problem lösen? Gibt es dazu eine Erweiterung?

  • Es ist ein offenes Thema github.com/Microsoft/vscode/issues/7829

    – hjpotter92

    25. März 2017 um 4:15 Uhr

  • @brand-shaw Ist ProjectRoot ein einfaches altes Verzeichnis oder auch ein Git-Repo?

    – wgj

    25. März 2017 um 5:36 Uhr


  • @wgj Es ist ein einfaches Verzeichnis. Verschiedene Teile des Projekts haben ihr eigenes Git-Repo. Die Dinge werden einfach, wenn VS-Code mehr als einen Ordner öffnen und Symbole in verschiedenen Ordnern suchen kann.

    – Marke Shaw

    26. März 2017 um 5:40 Uhr

Alternativ können Sie verwenden Multi-Root-Arbeitsbereiche. Anstatt das Stammverzeichnis Ihres Projekts zu öffnen, können Sie das erste separate Git-Repo öffnen und dann weitere hinzufügen, indem Sie File->Add Folder to Workspace verwenden. Sobald Sie alle hinzugefügt haben, können Sie Datei-> Arbeitsbereich speichern unter ausführen, um Ihre neue Arbeitsbereichskonfiguration zu speichern.

Wie bereits von wgj gesagt, geht VScode davon aus, dass sich das GIT-Repo auf derselben Verzeichnisebene wie das Workspace-Root befindet. Obwohl es derzeit keine Möglichkeit gibt, dies zu ändern, besteht eine möglicherweise hilfreiche Problemumgehung darin, die Projektmanager-Erweiterung zu verwenden, die es einfach macht, VScode-Fenster in verschiedenen Git-Repos zu öffnen und mit wenigen Tastendrücken zwischen ihnen zu wechseln. Es ist auch Teil des Git-Erweiterungspakets von Don Jayamanne.

Angenommen, ProjectRoot ist nicht auch ein Git-Repo (in dem Sie dem Problem aus dem Kommentar von @ hjpotter92 folgen und die normale git Befehl für jetzt) ​​…

VS Code erwartet Ihr Git-Repo (das Verzeichnis mit der .git Ordner) stattdessen zu Ihrem “ProjectRoot”. Dies impliziert, dass Verzeichnisse wie “SubDirectory1” und “SubDirectory2”, obwohl sie sich im selben übergeordneten Verzeichnis befinden, nicht wirklich Teil desselben Projekts sind und nicht aktiv zusammen bearbeitet werden.

  • Vielen Dank für die Antwort. Ich verwende vorerst git bash, aber es ist besser, wenn vs-Code den .git-Ordner in allen Verzeichnissen automatisch erkennen kann.

    – Marke Shaw

    26. März 2017 um 5:46 Uhr

Matts Benutzeravatar
Matt

Ab Version 1.20 von VS-Code (Januar 2018), VS Code hat die Einstellung git.autoRepositoryDetection, wodurch VS Code Git-Repositories automatisch erkennen kann. Ab dieser Antwort (2022) sind die gültigen Einstellungen:

  1. true
  2. false
  3. "subFolders"
  4. "openEditors"

Die Voreinstellung ist true, und es wird im Ordner darüber und in Unterordnern nach Git-Repos gesucht. Das "subFolders" Die Einstellung beschränkt die Suche nur auf Unterordner. Und die "openEditors" Die Einstellung beschränkt die Suche auf Repos, die in einem beliebigen offenen VS-Code-Editor geöffnet sind.

In Anbetracht dieser Optionen würde ich empfehlen, der Datei settings.json Ihres Stammarbeitsbereichs einen Eintrag hinzuzufügen. Diese finden Sie in /.vscode/settings.json, wo Sie sie hinzufügen können "git.autoRepositoryDetection": "subFolders". Sie können dies auch mit dem Einstellungssatz „Workspace“ oder für alle „Benutzer“-Einstellungen Ihres VS-Codes über den Einstellungseditor tun, den Sie unter „Datei“ -> „Einstellungen“ -> „Einstellungen“ finden und nach der Einstellung „git.autoRepositoryDetection“ suchen und wählen Sie dann über die Registerkarten “Benutzer” und “Arbeitsbereich” oben aus, ob Sie es für alle Ihre VS Code-Arbeitsbereiche oder nur für den Arbeitsbereich, an dem Sie arbeiten, festlegen möchten. (siehe Bild)
Einstellen von git.autoRepositoryDetection für den Workspace

Ich hatte ein ähnliches Problem:

- root project (git repo)
  |- subproject 1 (git repo)
  |- subproject 2 (git repo)

Ich möchte alle drei Repos in VSCode behandeln.

Offen subproject 1 regelmäßig dann “unterordner zum arbeitsbereich hinzufügen” auswählen subproject 2
dann “unterordner zum arbeitsbereich hinzufügen” auswählen root project

voilà: Sie können jetzt alle drei Repos in einem Workspace verwalten

1429450cookie-checkSo verwalten Sie mehr als ein Git-Repository in VS Code

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy