克隆
新建仓库 → 克隆,或者 ⌘K → 克隆。粘贴一个 URL,或者登录 GitHub、GitLab、
Bitbucket 或 Azure DevOps,从你自己的仓库列表里挑一个——所选配置档
的令牌只用于这次克隆,用完即弃,绝不会写进 .git/config。
选一个父文件夹和一个名字;字段下方那行会明明白白地告诉你仓库最终会落在哪里。 已经存在的文件夹会被拒绝,而不是往里面混着放。
高级——把克隆收窄
高级 下面的东西默认全是关的:不去动它,你得到的就是一次普通的、完整的克隆。 它真正派上用场的地方,是那些「完整」意味着二十分钟外加好几个 GB 的仓库。

| 选项 | git 做了什么 | 代价是什么 |
|---|---|---|
| 部分克隆 | --filter=blob:none |
完整历史,但不含文件内容。数据块按需到达,所以打开一个旧文件需要联网。 |
| 浅克隆 | --depth=N |
只存在最新的 N 个提交。追溯(blame)、日志、二分查找和范围差异都会在切口处戛然而止。 |
| 只要一个分支 | --single-branch |
其他分支留在远程,直到你去获取它们。 |
| 克隆子模块 | --recurse-submodules |
每个子模块也一并检出——现在多花点时间,以后少一堆空目录。 |
| 要检出的分支 | --branch <name> |
从该分支开始,而不是远程的默认分支。 |
先考虑部分克隆,再考虑浅克隆。 部分克隆保留每一个提交——历史仍然可以搜索,
只有文件内容是惰性获取的。浅克隆是真的把历史丢掉了:git log 到切口就结束,
追溯也看不到切口之前的东西。如果你克隆一个大仓库是为了在里面干活,通常你想要
的是部分克隆。
浅克隆是可以撤销的:在终端里执行 git fetch --unshallow,历史
就补回来了。
挑选分支
直接键入分支名,或者按 列出分支 去问远程都有些什么(git ls-remote --heads),
然后从下拉列表里选。那是一次网络往返,而且只在你按下按钮时才发生——你打字的
过程中什么都不会查询。
如果列举失败了——私有 URL 还没有令牌、拼错了、没网络——该字段就退回成一个普通 的文本框,而克隆本身会把真正的错误报给你。
关于这两个标志的两点说明
--depth隐含了--single-branch。 在浅克隆里,不勾选 只要一个分支 才是在要求把其他分支也拿回来(--no-single-branch),这也是它下面的提示文字 会跟着变的原因。- 克隆本地文件夹通常会完全忽略
--depth,因为 git 会给对象库做硬链接,而 不是去获取。所以当你要求对一个本地仓库做浅拷贝时,Gitcito 会改用file://URL 来克隆,你要的深度就是你拿到的深度。
进度
进度条如实转述 git 报告的内容:统计、压缩、接收、解析、检出。某个阶段如果报不 出总量,显示的会是一条不确定进度的条,而不是一个编出来的百分比。
新仓库会在一个标签页里打开,并固定到你克隆时所用的那个配置档上。