从Git远程仓库单独拉取指定目录或文件的实现

Written by

in

文章目录
  • 工作中,总是会有一些特殊需求或场景,只希望从Git的远程仓库里检出或拉取指定的文件夹或部分文件出来。 Git 1.7.0后,可以使用Sparse Checkout(稀疏检出)模式实现。
  • Git是一种版本控制系统,它可以记录文件在不同时间点的版本变化并且跟踪文件的更改历史。 它最初是由Linus Torvalds为了管理Linux内核的开发而创建的。现在,Git已经成为了许多开发者进行协作开发和版本控制的首选工具之一。 Git具有分支管理、代码合并等丰富的功能,可以帮助团队协同工作,提高项目的质量和效率。
  • 以上为个人经验,希望能给大家一个参考,也希望大家多多支持风君子博客。 您可能感兴趣的文章: git大仓库拉取卡顿问题排查与解决方法 配置Jenkins自动拉取gitlab中的代码并部署方式 从Gitee拉取项目到上传修改的完整流程 IDEA初次拉取GitLab项目过程 git如何拉取项目分支代码
  • 目录
    • 1、背景
    • 2、什么是Git
    • 3、操作步骤
      • 3.1、新建项目目录
      • 3.2、初始化本地仓库
      • 3.3、添加绑定远程仓库
      • 3.4、设置稀疏检出模式
      • 3.5、指定要检出的文件夹或部分文件
      • 3.6、检出的指定的文件夹或部分文件
    • 总结

      工作中,总是会有一些特殊需求或场景,只希望从Git的远程仓库里检出或拉取指定的文件夹或部分文件出来。

      Git 1.7.0后,可以使用Sparse Checkout(稀疏检出)模式实现。

      Git是一种版本控制系统,它可以记录文件在不同时间点的版本变化并且跟踪文件的更改历史。

      它最初是由Linus Torvalds为了管理Linux内核的开发而创建的。现在,Git已经成为了许多开发者进行协作开发和版本控制的首选工具之一。

      Git具有分支管理、代码合并等丰富的功能,可以帮助团队协同工作,提高项目的质量和效率。

      如果Windows操作系统,同时装了Git Bash的话,也可以打开Git Bash执行命令

      # 在D:/temp打开命令行窗口或Git Bash,新建项目x-archive目录,并进入到x-archive目录下
      mkdir x-archive && cd x-archive
      

      git init
      Initialized empty Git repository in D:/temp/x-archive/.git/
      

      git remote add -f main https://gitee.com/xxx/x-archive.git
      Updating main
      remote: Enumerating objects: 52, done.
      remote: Counting objects: 100% (52/52), done.
      remote: Compressing objects: 100% (39/39), done.
      remote: Total 52 (delta 9), reused 0 (delta 0), pack-reused 0
      Unpacking objects: 100% (52/52), done.
      From https://gitee.com/xxx/x-archive
       * [new branch]      main       -> main/main
       * [new tag]         V1.0.0     -> V1.0.0
       * [new tag]         V1.0.1     -> V1.0.1
      

      执行后会列出远程仓库中的分支以及版本号等信息,分支名称等信息后面会用到

      设置sparse checkout稀疏检出模式,允许检出在下一步指定的文件夹或部分文件

      git config core.sparsecheckout true
      

      # 指定检出archive/config目录下的application.yaml,可以使用通配符,比如*,也可以使用!表示反选,
      # 例如 archive/或archive 表示可以检出archive目录下所有文件夹和文件
      echo archive/config/application.yaml >> .git/info/sparse-checkout
      

      可以查看设置的内容

      # Windows操作系统如果使用Git Bash打开命令窗口,也可以执行下面命令查看
      cat .git/info/sparse-checkout
      archive/config/application.yaml
      

      # 从远程仓库main的main分支中检出指定的文件夹或部分文件
      git fetch
      git pull main main
      From https://gitee.com/xxx/x-archive
       * branch            main       -> FETCH_HEAD
      

      支持tree的控制台(git bash可能需要另外安装,window或linux控制台)可以直接使用tree命令查看检出的文件夹或文件

      # 在window的控制台中,进入到项目目录,输入tree /F命令
      D:tempx-archive>tree /F
      D:.
      └─archive
          └─config
                  application.yaml
      

      以上为个人经验,希望能给大家一个参考,也希望大家多多支持风君子博客。

      您可能感兴趣的文章:

      • git大仓库拉取卡顿问题排查与解决方法
      • 配置Jenkins自动拉取gitlab中的代码并部署方式
      • 从Gitee拉取项目到上传修改的完整流程
      • IDEA初次拉取GitLab项目过程
      • git如何拉取项目分支代码

      站内搜索