diff --git a/Software/Applications/Git/Git_使用说明.md b/Software/Applications/Git/Git_使用说明.md index 84a8551..9a2b028 100644 --- a/Software/Applications/Git/Git_使用说明.md +++ b/Software/Applications/Git/Git_使用说明.md @@ -365,6 +365,33 @@ Git Clone 支持使用 http、https、ssh 等协议: ![使用 SSH 协议进行 Clone](./img/Git_使用说明/git-clone-through-ssh.gif) +有的代码仓库比较大,提交次数多,Clone 仓库时不需要下载全部提交历史,此时可以使用 --depth 参数指定 Clone 深度,也就是 Shallow Clone 方式: + +```bash +git clone --depth +``` + +其中 n 是要 Clone 的深度,也就是从 HEAD 开始计算的提交次数,比如: + +```bash +git clone --depth 3 +``` + +此时 Clone 下来的仓库只包含最新的 3 次提交历史。 + +当使用 Shallow Clone 的仓库进行代码提交时可能会出现: + +```bash +! [remote rejected] xxx -> xxx (shallow update not allowed) +``` + +此时需要 fetch 原仓库的全部内容,将 Shallow 转换为非 Shallow 仓库来解决问题: + +```bash +# 为原仓库地址 +git fetch --unshallow +``` + ### 3.5. 提交变更 在修改代码或相关文件后,需要先将变更缓存到本地,这一步被称作 Commit。带签名的提交命令如下: