Gitでファイルをコピーする¶
snow git copy コマンドは、リポジトリの指定された状態(特定のブランチ、タグ、またはコミット)から別のステージまたはローカルファイルシステムにファイルをコピーします。
snow git copy <REPO_PATH> <DEST_PATH> [--parallel INT]
条件:
<REPO_PATH>は特定のスコープを持つステージパスであり、値はリポジトリ名に続いて、コピーするブランチ、タグ、またはコミットを指定するサフィックスが続きます。次に、いくつかの異なるタイプの値を示します。@snowcli_git/branches/main/は「main」ブランチの最後のコミットを指します@snowcli_git/tags/v2.1.0/はv2.1.0タグが付けられたコミットを指します。@snowcli_git/commits/1e939d69ca6fd0f89074e7e97c9fd1/は特定のコミットを指します。コミットハッシュの長さは6文字から40文字にする必要があります。
リポジトリパスにはリポジトリ内のサブディレクトリやファイルを指定することもできますが、その前にスコーププレフィックスを付ける必要があります。
<DEST_PATH>は、Snowflakeステージ上のローカルディレクトリまたはリモートディレクトリへのパスです。--parallelは、ファイルのダウンロード時に使用するスレッド数を指定します。
<DEST_PATH> がステージを指定する場合、コマンドは次のようにサフィックスの形式に基づいて異なる動作をします。
ソースが
@my_snow_git/branches/main/tests/plugin/のように/で終わっている場合、コマンドはpluginディレクトリの内容を宛先にコピーします。ソースが
@my_snow_git/branches/main/tests/pluginのように/で終わっていない場合、コマンドはpluginディレクトリ全体をコピーします。
例: コミットからステージ内のディレクトリにファイルをコピーする¶
この例では、ステージ @public に snowcli2.0/ ディレクトリを作成し、タグ v2.0.0 でマークされたコミットからすべてのファイルをそのディレクトリにコピーします。
snow git copy @my_snow_git/tags/v2.0.0/ @public/snowcli2.0/
例: ディレクトリ内のファイルをステージ内のディレクトリにコピーする¶
次の例では、 test_stage ステージに plugin_tests ディレクトリを作成し、 tests/plugin/ ディレクトリの内容をそこにコピーします。
snow git copy @my_snow_git/branches/main/tests/plugin/ @test_stage/plugin_tests/
例: ディレクトリ全体をステージ内のディレクトリにコピーする¶
この例では、 test_stage ステージに plugin_tests ディレクトリを作成し、 tests/plugin ディレクトリ全体をそこにコピーします。 tests/plugin は「/」で終わっていないため、コマンドはすべてのファイルを @test_stage/plugin_tests/plugin にコピーします。
snow git copy @snowcli_git/branches/main/tests/plugin @test_stage/plugin_tests
例: ステージ内のディレクトリからローカルファイルシステムにファイルをコピーする¶
次の例では、ローカルのファイルシステムに plugin_tests ディレクトリを作成し、 tests/plugin ディレクトリの内容をそこにダウンロードします。
snow git copy @snowcli_git/branches/main/tests/plugin plugin_tests/