Git只获取部分目录的内容(稀疏检出)

Git只获取部分目录的内容(稀疏检出),第1张

公司的开发从SVN切换到Git,在SVN下,可以很方便的只获取版本库中一个或多个目录内容,但是Git的克隆,默认是直接拉取整个远程仓库,如果项目比较大,大量和自己无关的内容也会拉到本地,占用很多硬盘空间。

在网上搜了一下,Git在17版本后,已经支持只Checkout部分内容,这个功能叫做 sparse checkout(稀疏检出)。

git config coresparsecheckout true

echo "BATInterview" >> git/info/sparse-checkout

只拉取BATInterview文件夹

此时会在sparse-checkout文件中追加

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

$ git checkout master

或执行以下命令:

$ git read-tree -mu HEAD

仅仅修改设置,将coresparsecheckout设为false是不生效的,需要修改 git/info/sparse-checkout 文件,用一个”“号替代其中的内容,然后执行 checkout 或 read-tree 命令。

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

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

子目录的匹配在 sparse-checkout 文件中,如果目录名称前带斜杠,如/docs/

,将只匹配项目根目录下的docs目录,如果目录名称前不带斜杠,如docs/

,其他目录下如果也有这个名称的目录,如test/docs/

也能被匹配。而如果写了多级目录,如docs/05/

,则不管前面是否带有斜杠,都只匹配项目根目录下的目录,如test/docs/05/

不能被匹配。

通配符 “ “ (星号)在 sparse-checkout 文件中,支持通配符 “ “,如可以写成以下格式:

“!” (感叹号)在 sparse-checkout 文件中,也支持排除项 “!”,如只想排除排除项目下的 “docs” 目录,可以按如下格式写:

很像 gitignore的写法

要注意一点:如果要关闭sparsecheckout功能,全取整个项目库,可以写一个” “号,但如果有排除项,必须写”/ “,同时排除项要写在通配符后面。

参考: >

git提交代码命令方法:

1、进入git终端、输入gitinit指令、会在当前目录生成一个git的文件夹。

2、然后通过gitstatus查看,该指令作用是列出修改过的(绿色标识)、新创建的(红色标识)、已经暂存但未提交的文件(白色标识)。

3、然后通过gitaddindextxt(gitadd添加全部)`添加到缓存中。

4、然后通过gitcommit-m"备注信息-提交说明",提交本次内容。

5、然后通过gitremoteaddorigin提交到指定仓库地址、替换自己对应的仓库地址提交。

6、然后在执行push推送。

以上就是关于Git只获取部分目录的内容(稀疏检出)全部的内容,包括:Git只获取部分目录的内容(稀疏检出)、git拉取之后要获取吗、git提交代码命令等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9871687.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存