Kopieren von Dateien in Git

Der Befehl snow git copy kopiert Dateien aus einem bestimmten Status des Repositorys (bestimmter Zweig, Tag oder Commit) in einen anderen Stagingbereich oder ein lokales Dateisystem.

snow git copy <REPO_PATH> <DEST_PATH> [--parallel INT]
Copy

Wobei:

  • <REPO_PATH> ist ein Stagingbereichspfad mit einem bestimmten Geltungsbereich, wobei der Wert der Name des Repositorys ist, gefolgt von einem Suffix, das angibt, welcher Zweig, welches Tag oder welcher Commit kopiert werden soll. Im Folgenden sind einige verschiedene Typen von Werten aufgeführt:

    • @snowcli_git/branches/main/ bezieht sich auf das letzten Commit des Zweiges „main“.

    • @snowcli_git/tags/v2.1.0/ bezieht sich auf ein Commit mit dem Tag v2.1.0.

    • @snowcli_git/commits/1e939d69ca6fd0f89074e7e97c9fd1/ bezieht sich auf ein bestimmtes Commit. Commit-Hashes sollten zwischen 6 und 40 Zeichen lang sein.

    Ein Repository-Pfad kann auch ein Unterverzeichnis oder eine Datei im Repository sein, muss aber dennoch mit einem Bereichs-Präfix versehen werden.

  • <DEST_PATH> ist ein Pfad zu einem lokalen Verzeichnis oder zu einem externen Verzeichnis im Snowflake-Stagingbereich.

  • --parallel gibt die Anzahl der Threads an, die beim Herunterladen von Dateien verwendet werden sollen.

Wenn <DEST_PATH> einen Stagingbereich angibt, funktioniert der Befehl je nach Format des Suffixes unterschiedlich:

  • Wenn die Quelle mit einem / endet, z. B. @my_snow_git/branches/main/tests/plugin/, kopiert der Befehl den Inhalt des plugin-Verzeichnisses in das Ziel.

  • Wenn die Quelle nicht mit / endet, z B. @my_snow_git/branches/main/tests/plugin, kopiert der Befehl das gesamte plugin-Verzeichnis.

Beispiel: Kopieren von Dateien aus einem Commit in ein Verzeichnis in einem Stagingbereich

Dieses Beispiel erstellt ein Verzeichnis snowcli2.0/ im Stagingbereich @public und kopiert alle Dateien des Commits, die mit dem Tag v2.0.0 markierten sind, in dieses Verzeichnis:

snow git copy @my_snow_git/tags/v2.0.0/ @public/snowcli2.0/
Copy

Beispiel: Kopieren von Dateien aus einem Verzeichnis in ein Verzeichnis in einem Stagingbereich

Das folgende Beispiel erstellt ein Verzeichnis plugin_tests im Stagingbereich test_stage und kopiert den Inhalt des Verzeichnisses tests/plugin/ dorthin.

snow git copy @my_snow_git/branches/main/tests/plugin/ @test_stage/plugin_tests/
Copy

Beispiel: Kopieren eines kompletten Verzeichnisses in ein Verzeichnis im Stagingbereich

In diesem Beispiel wird ein Verzeichnis plugin_tests im Stagingbereich test_stage erstellt und das gesamte Verzeichnis tests/plugin dorthin kopiert. Da tests/plugin nicht mit „/“ endet, kopiert der Befehl alle Dateien nach @test_stage/plugin_tests/plugin.

snow git copy @snowcli_git/branches/main/tests/plugin @test_stage/plugin_tests
Copy

Beispiel: Kopieren von Dateien aus einem Verzeichnis in einem Stagingbereich in das lokale Dateisystem

Das folgende Beispiel erstellt ein Verzeichnis plugin_tests im lokalen Dateisystem und lädt den Inhalt des Verzeichnisses tests/plugin dorthin herunter.

snow git copy @snowcli_git/branches/main/tests/plugin plugin_tests/
Copy