赞
踩
最近参与到一个历史较为悠久的工程中,第一次clone代码啥也没想,发现花了近半个小时。 :O
$ git clone http://git/repos/group/project.git
啊,为什么这么久呢?看看工程到底多大。
- $ du -d 1 -h project
- 1.3G project/.git
- 92K project/batches
- 100K project/checkpoints
- 896K project/config
- 44K project/tools
- ...
- 1.3G project
好家伙, .git 1.3G,其他忽略不计。(关于.git目录当中的内容是什么,可以另行搜索)
作为一个new comer,我不急于了解整个工程的历史;在我其他的工作机上,我也不想每次都花30分钟来clone代码。
所以下一台工作机,我用到浅表克隆(shallow clone)了。 --depth参数,让你自由选择想要克隆的最近几个版本。
$ git clone --depth 1 http://git/repos/group/project.git
20秒搞定!
浅表克隆之后,Leader告诉我其实我们的工作分支是apple。如果事先知道这个信息,我会在clone的时候就直接 -b apple 指定分支。然鹅,没有如果。
直接 git checkout apple?会看到如下报错。
- $ git checkout apple
- $ error: pathspec 'apple' did not match any file(s) known to git
这是因为 shallow clone的仓库,是没有其他分支的信息的!
这个时候,我只能(搜了一下)多敲几行命令,将工作分支apple也shallow clone下来啦。
- $ git remote set-branches origin 'apple'
- $ git fetch --depth 1 origin apple
- $ git checkout apple
来到下一台工作机,它是个WIN10。:) 在Windows系统下,我遭遇了另一个问题。
假设这是个非常长的文件名啦.js: Filename too long
:) 好吧。 搜了一下……
Git的文件名限制为4096个字符,除非在Windows中使用msys编译Git。
msys使用较老版本的Windows API,文件名限制为260个字符。
您可以通过在 Windows 上使用另一个 Git 客户端或将 core.longpaths 设置为 true 来规避此问题。
棒(๑•̀ㅂ•́)و✧ ,敲起来,搞定!
$ git config --system core.longpaths true
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。