复制 Git 中的文件¶
snow git copy
命令将文件从存储库的给定状态(特定分支、标签或提交)复制到另一个暂存区或本地文件系统。
snow git copy <REPO_PATH> <DEST_PATH> [--parallel INT]
其中:
<REPO_PATH>
是一个具有特定范围的暂存区路径,其值是存储库的名称,后面跟着一个指定要复制的分支、标签或提交的后缀。下面列出了一些不同类型的值:@snowcli_git/branches/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/
示例:将文件从某个目录内部复制到暂存区中的目录¶
以下示例在 plugin_tests
暂存区中创建了 test_stage
目录,并将 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/