【git】按需下载仓库某个文件夹

这篇具有很好参考价值的文章主要介绍了【git】按需下载仓库某个文件夹。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

git 按需下载仓库某个文件夹

应用场景

github 有一个很大的仓库,但是自己真正使用的只有某几个文件夹,那么如何只下载这几个文件夹呢?

这里就要使用 gitsparse-checkout 功能

下面主要介绍三种情况

  • 本地没有此仓库代码
  • 本地已有此仓库代码
  • 禁用该功能

本地没有此仓库代码

本地建立一个新的仓库

git init my_source_project
cd my_source_project

添加远程仓库地址

这里的远程仓库地址即为需要下载部分代码的仓库地址

git remote add origin https://github.com/tyustli/threadx-l475.git

在本地仓库里面启用sparse-checkout

git config core.sparseCheckout true

添加需要下载的文件夹

echo "/docs" >>.git/info/sparse-checkout 
echo "/stm32l475" >>.git/info/sparse-checkout 

也可以用编辑器直接打开 .git/info/sparse-checkout 文件并写入,该文件语法规则和 .gitignore 文件一样

下载需要的代码

git pull origin master

当然也可以先

git branch --set-upstream-to=origin/master

然后

git checkout master
git pull

本地已有此仓库代码

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

git config core.sparsecheckout true        // 使能该功能
echo "" > .git/info/sparse-checkout        // 清空该文件
echo "/docs" >> .git/info/sparse-checkout  // 添加需要下载的文件
echo "/inc" >> .git/info/sparse-checkout   // 添加需要下载的文件
echo "/src" >> .git/info/sparse-checkout   // 添加需要下载的文件
git checkout master
git pull

后续有需要下载的文件夹

echo "/xxx" >> .git/info/sparse-checkout
git checkout master
git pull

禁用该功能

git config core.sparsecheckout false
echo "*" > .git/info/sparse-checkout
git checkout master
git read-tree...

参考链接

  • http://schacon.github.io/git/git-read-tree.html#_sparse_checkout

总结

本文主要介绍了 sparse-checkout 的功能,如何下载远程 git 仓库中的部分代码及文件夹。文章来源地址https://www.toymoban.com/news/detail-515511.html

到了这里,关于【git】按需下载仓库某个文件夹的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • git如何仅合并项目下的某个文件夹

    假设目前在做的一个项目名为demoproject,目前版本为v1.0.0,标准开发都是在demoproject上进行的,但是有一个客户需要做定制化,需要将项目中的一些信息改为客户的,于是基于demoproject拉了一个v1.0.0-custom,然后将这个v1.0.0-custom交付给了客户。 过了一段时间,客户又提了新的需

    2024年01月21日
    浏览(77)
  • git 删除仓库中多余的文件或者文件夹

    目录 问题 解决方案 第一步:同步代码 第二步:删除文件 第三步:提交 第四步:推送远端 在项目开发测试阶段,将无意间将本地敏感的、或无用的文件或目录不小心提交到远程仓库,该怎么解决呢。  先pull远程代码,保持同步。 填写备注信息。 推送成功刷新仓库。 如果

    2024年01月16日
    浏览(89)
  • git 怎么导入本地仓库-将本地文件夹添加到Git仓库

    1、(先进入项目文件夹)通过命令 git init 把这个目录变成git可以管理的仓库 2、把文件添加到版本库中,使用命令 git add .添加到暂存区里面去,不要忘记后面的小数点“.”,意为添加文件夹下的所有文件 3、用命令 git commit告诉Git,把文件提交到仓库。引号内为提交说明 4、关

    2023年04月11日
    浏览(56)
  • 无需克隆整个仓库,下载Github特定文件夹内的文件

    注意:此方法对Git-LFS方式上传的文件可能无效!!! 在 Windows 中,可以通过以下步骤打开 PowerShell 终端: 使用搜索功能: 点击 Windows 按钮(开始菜单左下角的 Windows 图标)。 在搜索框中键入 \\\"PowerShell\\\" 或 \\\"Windows PowerShell\\\"。 在搜索结果中,选择 \\\"Windows PowerShell\\\" 或 \\\"Windows Po

    2024年02月01日
    浏览(61)
  • git删除远程仓库上已提交的文件/文件夹

    由于给本地项目配置远程库,误提交很多不应该提交的文件或文件夹,比如 .idea .settings .project .iml 以及日志等文件。以及由于 .gitignore 文件配置不正确很有可能导致某些不需要的目录上传到 git 远程仓库上了。除了注意配置 .gitignore 文件外,以下是解决办法。 提交了文件到自

    2024年02月11日
    浏览(97)
  • Git克隆远程仓库中的指定文件或者文件夹

    我们在日常需求中,可能会仅仅只想拉去某个仓库中的指定文件或者文件夹到本地的需求,这里记录一下操作方法 1、创建文件夹 一般来说,在克隆远程仓库之前会在自己电脑本地新建一个文件夹用于存放,可以自己手动新建一个文件夹,也可以使用命令: 2、进入到创建的

    2024年02月11日
    浏览(80)
  • git 上传文件夹至远端仓库的方法

    上传的远端git可以是gitlab、github、gitee、gitblit或者gitCode等等 以下以GitHub为例说明: 1、登录GitHub网站(账户/密码) 2、创建一个新的空白项目(或者已有的项目)hello-world 分支是master ,这里默认即可。 任务则是将一个srccode的文件夹上传上去,文件夹内容可以很多,这里模拟

    2024年04月23日
    浏览(54)
  • git仓库清理瘦身解决 .git文件夹过大的问题

    git仓库清理找了很多资料和方案都没有很完美执行成功的;现在找到一个完美方案,分享给大家;希望能帮助大家 1、gitlab代码开发了仓库开发了五年了,代码只有10M;clone的时候要700多兆很浪费时间 2、创建分支和切换分支耗时,导致电脑崩溃 3、公司内部接入codereview服务;

    2024年02月02日
    浏览(81)
  • 解决gitee仓库中 .git 文件夹过大的问题

    最近,许多项目都迁移到gitee。使用的也越来越频繁,但是今天突然收到一个仓库爆满的提示。让我一脸懵逼。本文将详细为你解答,这种情况如何处理。 我收到的报错如下: 看了下,大概意思是一个仓库体积最大不能超过1GB,但是现在我已经超过3GB了。。。 我第一个想法

    2024年02月03日
    浏览(55)
  • Github 下载指定文件夹(git sparse-checkout)

    比如要下载这里的 data_utils 1、新建空文件夹,并进入新建的空文件夹。 2、 git init 初始化 3、 git remote add origin 添加远程仓库 4、 git config core.sparsecheckout true 允许稀疏检出 5、 git sparse-checkout set 设置需要拉取的文件夹(可以同时拉取多个,中间加空格即可) 6、 git pull origin

    2024年02月09日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包