findxc / blog

88 stars 5 forks source link

历史悠久的项目,git clone很慢咋整 #79

Open findxc opened 1 year ago

findxc commented 1 year ago
  1. 加上 --depth=100 ,比如 git clone --depth=100 <repo> 来只 clone 主分支并且只 clone 100 个 commit ,由于 clone 内容大大减少, clone 就变快了
  2. 使用时发现 git fetch origin another_branch 然后 git checkout another_branch 无法像以前一样基于远端的 another_branch 新建一个本地分支。执行 git config --list 发现 remote.origin.fetch 的值是 +refs/heads/master:refs/remotes/origin/master ,而其它仓库的这个值一般是 +refs/heads/*:refs/remotes/origin/* ,我们这里是这个值是因为 clone 有 depth 参数, git 自动设的,所以我们手动执行 git config remote.origin.fetch '+refs/heads/*:refs/remotes/origin/*' 改回去就行了,这一点的详细解释见 How do fetch remote branch after I cloned repo with git clone --depth 1 - Stack Overflow
  3. 使用时由于主分支只有 100 个 commit ,有时候就想看更完整的代码修改记录咋整,可以执行 git fetch --unshallow 拉取完整记录,执行完后就和没加 depth 的 clone 一样了

相关文档:

  1. git clone --depth=xxx
  2. git fetch --unshallow