当前位置:   article > 正文

Git使用:浅表克隆之后的分支切换,附Windows系统Filename too long 问题解决_git切换分支显示文件名太长

git切换分支显示文件名太长

PART 1 - 浅表克隆 shallow clone

最近参与到一个历史较为悠久的工程中,第一次clone代码啥也没想,发现花了近半个小时。 :O

$ git clone http://git/repos/group/project.git

啊,为什么这么久呢?看看工程到底多大。

  1. $ du -d 1 -h project
  2. 1.3G project/.git
  3. 92K project/batches
  4. 100K project/checkpoints
  5. 896K project/config
  6. 44K project/tools
  7. ...
  8. 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?会看到如下报错。

  1. $ git checkout apple
  2. $ error: pathspec 'apple' did not match any file(s) known to git

这是因为 shallow clone的仓库,是没有其他分支的信息的!

这个时候,我只能(搜了一下)多敲几行命令,将工作分支apple也shallow clone下来啦。

  1. $ git remote set-branches origin 'apple'
  2. $ git fetch --depth 1 origin apple
  3. $ 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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/407572
推荐阅读
相关标签
  

闽ICP备14008679号