git如何只下载部分文件

问题遇到的现象

使用git 时,线上代码库巨大无比 下载很久都下不下来。想要下载部分代码,并且支持修改再上传。网上的这个办法依旧下载全部,下了半个小时还没下下来

尝试的方法

img

我的结果

img

我想要达到的结果

求问各位有没有什么办法,只pull下载部分文件,还支持修改后push

参考:https://blog.csdn.net/FisrtBqy/article/details/123540861

建立一个空的git 本地仓库:
$ git init new.project && cd new.project

在本地仓库里面启用sparse-checkout:
$ git config core.sparseCheckout true

设定你要checkout 哪些文件夹(如/xxx/表示xxx文件夹下所有文件)(也可以用vim直接打开 .git/info/sparse-checkout写入)
$ echo '/xxx/
' >> .git/info/sparse-checkout

设定remote (要从哪里clone/pull?):
$ git remote add origin git://github.com/xxx/xxx.git

然后就可以开始pull 了(这边可以加上后面说的shallow pull,加上–depth=n
$ git pull origin master

之后
如果只拉取最近一次的变更,忽略以前的变更记录,在拉取时可以加参数depth,如git pull --depth=1 origin master (浅克隆)

如果以后修改了 .git/info/sparse-checkout,增加或删除部分目录,可以执行如下命令重新Checkout

$ git checkout master

或执行以下命令:

$ git read-tree -mu HEAD

如果本地已经建了版本库,要使用这个功能,可以进入版本库的目录,执行以下命令

$ git config core.sparsecheckout true
$ echo "/xxx/" >> .git/info/sparse-checkout
$ echo "/xxx" >> .git/info/sparse-checkout
$ git checkout master
$ git config core.sparsecheckout true$ echo "/xxx/
" >> .git/info/sparse-checkout$ echo "/xxx" >> .git/info/sparse-checkout$ git checkout master
要关闭 sparse checkout功 能,仅仅修改设置,将core.sparsecheckout设为false是不生效的,需要修改 .git/info/sparse-checkout 文件,用一个”*“号替代其中的内容,然后执行 checkout 或 read-tree 命令。

下部分文件意义何在呢?项目缺失根本无法运行。

这个初衷是为了解决公司文件巨大,但操作只需要上传一个包。但是整个项目clone耗时巨大。最后解决方法是使用了gitlab的WEBIDE功能直接界面上传文件了。

img

img

了解一下git命令加 --depth=1 ,是否有用

不想下载仓库 又要修改上传,我觉得最简单的就是在仓库网站里面做,
这样不用下载整个仓库,只需要修改变更的地方就可以了