Skip to content

克隆和下载仓库

克隆仓库

对于熟悉 git 的用户

hj clone 近似于 git clone,但允许你使用仓库全名(owner/repo)而不是 URL 来克隆 GitHub 上的仓库。

对于熟悉 jj 的用户

hj clone 近似于 jj git clone,但允许你使用仓库全名(owner/repo)而不是 URL 来克隆 GitHub 上的仓库。

相比于 git clonejj 有清晰的进度条来查看进度。

因为 git clonegh repo clone 得到的是以 .git 作为版本管理的本地目录,所以并不兼容 jjhj

你可以使用命令:

sh
hj clone https://github.com/gaojunran/hj.git

来克隆一个仓库。

这样写并不简练!你可以用仓库全名来替代一个长 url:

sh
hj clone gaojunran/hj

这建立在默认 host 是 github.com 的前提下。你可以通过 覆写环境变量 来修改默认行为:

sh
HJ__DEFAULT_HOST=gitlab.com hj clone gaojunran/hj

也可以指定目标文件夹路径。默认是远程仓库的名字。如果你这样执行:

sh
hj clone gaojunran/hj .  # 关注最后的 . 表示当前文件夹

那么仓库内容将被克隆在当前文件夹内,而不是新建一个文件夹。

下载仓库

很多情况下我们使用 GitHub 上的仓库,并不需要其历史版本,例如:

  • 学习仓库中的代码;
  • 将仓库作为模板用于自己的项目;
  • 只想要最新的代码快照。

在这种情况下,我们为你提供了一个方便的命令:

sh
hj download gaojunran/hj

它将从 GitHub 上下载仓库的最新代码快照(不含版本控制),并解压到一个文件夹中。这比克隆仓库要快得多!

Details

此部分功能实现借鉴自 degit-rs

一个较大的不同是,degittigeddegit-rs 均是将代码克隆在当前目录中(且要求这个文件夹必须为空),而 hj download 默认是将代码解压到当前目录的一个新文件夹下,与 hj clone 保持一致。和 hj clone 一样,你也可以指定具体路径(名字),例如:

sh
hj download vuejs/core vue  # 如果不指定名字,默认名为仓库名,即 core

你还可以从一个仓库中下载指定的文件或文件夹,例如:

sh
hj download vuejs/core -e package.json   # 下载 package.json 文件
hj download vuejs/core -e src -e package.json   # 下载 src 文件夹和 package.json 文件
Details

下载指定文件(夹)的功能借鉴自 cloneit

此功能高度依赖 GitHub API,故如果您有 API 速率限制问题,请自行导出 GITHUB_TOKEN 环境变量,程序将会自动使用。

未来我们将会支持 GitLab。

TIP

下载仓库与 版本控制 完全无关!它只是我们给你提供的一个方便的小礼物 🎁;下载仓库后,你可以继续使用 hj init 来进行自己的版本控制。