复制 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/