Git使用:浅表克隆之后的分支切换,附Windows系统Filename too long 问题解决

PART 1 - 浅表克隆 shallow clone

最近参与到一个历史较为悠久的工程中,第一次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秒搞定!

PART 2 - 浅表克隆之后的分支切换 

浅表克隆之后,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

PART 3 - Filename too long 报错

来到下一台工作机,它是个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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值