Cópia de arquivos no Git¶
O comando snow git copy
copia arquivos de um determinado estado do repositório (ramificação, tag ou commit específico) para outro estágio ou sistema de arquivo local.
snow git copy <REPO_PATH> <DEST_PATH> [--parallel INT]
onde:
<REPO_PATH>
é um caminho de estágio com um escopo específico onde o valor é o nome do repositório seguido por um sufixo especificando qual ramificação, tag ou commit deve ser copiado. A seguir estão listados alguns tipos diferentes de valores:@snowcli_git/branches/main/
refere-se ao último commit da ramificação “principal”@snowcli_git/tags/v2.1.0/
refere-se a um commit com tagv2.1.0
.@snowcli_git/commits/1e939d69ca6fd0f89074e7e97c9fd1/
refere-se a um commit específico. Os hashes do commit devem ter entre 6 e 40 caracteres.
Um caminho de repositório também pode ser um subdiretório ou arquivo no repositório, mas ainda deve ser precedido por um prefixo de escopo.
<DEST_PATH>
é um caminho para um diretório local ou para um diretório remoto no estágio Snowflake.--parallel
especifica o número de threads a serem usados ao baixar arquivos.
Quando <DEST_PATH>
especifica um estágio, o comando opera de forma diferente com base em seu formato de sufixo, como segue:
Se a fonte terminar com um
/
, como@my_snow_git/branches/main/tests/plugin/
, o comando copia o conteúdo do diretórioplugin
para o destino.Se a fonte não terminar com um
/
, como@my_snow_git/branches/main/tests/plugin
, o comando copia todo o diretórioplugin
.
Exemplo: copiar arquivos de um commit para um diretório em um estágio¶
Este exemplo cria um diretório snowcli2.0/
no estágio @public
e copia todos os arquivos do commit marcados com a tag v2.0.0
para esse diretório:
snow git copy @my_snow_git/tags/v2.0.0/ @public/snowcli2.0/
Exemplo: copiar arquivos de dentro de um diretório para um diretório em um estágio¶
O exemplo a seguir cria um diretório plugin_tests
em um estágio test_stage
e copia o conteúdo do diretório tests/plugin/
nele.
snow git copy @my_snow_git/branches/main/tests/plugin/ @test_stage/plugin_tests/
Exemplo: copiar um diretório inteiro para um diretório em um estágio¶
Este exemplo cria um diretório plugin_tests
no estágio estágio_de_teste
e copia todo o diretório tests/plugin
para ele. Como tests/plugin
não termina com /, o comando copia todos os arquivos para @test_stage/plugin_tests/plugin
.
snow git copy @snowcli_git/branches/main/tests/plugin @test_stage/plugin_tests
Exemplo: copiar arquivos de um diretório em um estágio para o sistema de arquivos local¶
O exemplo a seguir cria um diretório plugin_tests
no sistema de arquivos local e baixa o conteúdo do diretório tests/plugin
nele.
snow git copy @snowcli_git/branches/main/tests/plugin plugin_tests/