美文网首页
git归档时如何同步子模块文件

git归档时如何同步子模块文件

作者: 想落天外77 | 来源:发表于2020-02-18 23:28 被阅读0次

背景描述:

git 项目里有使用到 git submodule ,然后使用了gitlab,当推送到gitlab上时,会触发 .gitlab-ci.yml 进行一些自动化的构建,测试,发布等等动作。其中有一步是要把gitlab上这个仓库,归档(git archive)后,使用 rsync 到另一台服务器上。

问题描述

在使用 git archive的时候,发现并没有把项目里的submodule里的文件归档过去,只有一个submodule的文件夹

目的

需要让git submodule里的文件也能够归档过去,这样依赖才正常。在网上查询了方法,发现有一个python 的库,能够使用其命令完成子模块的归档,链接见此:link

思考:能不能不使用这个依赖库,自己使用命令完成 ?

再次google后,发现一篇帖子给了我思路:link

大概的思路就是,1、先在父目录使用git archive后,再通过git submodule foreach遍历submodule,对sudmodule里的文件进行git archive,这样最后,所有文件都能归档到一个地方了。

下面是部分shell的代码

    # use HEAD if tag doesn't exist yet, so that development is easier...
PROJECT_NAME="rf_common"
git archive --format=tar --prefix=$PROJECT_NAME/ HEAD | (cd /Users/wei/Desktop/target/ && tar xf -) #归档父项目后解压到指定目录
# TODO: if git archive had a --submodules flag this would easier!
echo Running git archive submodules...
p=`pwd` && git submodule foreach | while read desc subdir; do 
    subdir=${subdir#*\'}; #去除最左边的单引号
    subdir=${subdir%*\'}; #去除最右边的单引号
    [ "${subdir}" = "" ] && continue; //加一步判断,subdir为""则continue
    (cd ${subdir} && git archive --format=tar --prefix=${subdir}/ HEAD | (cd /Users/wei/Desktop/target/$PROJECT_NAME/ && tar xf -)); #归档submodule后解压到父目录
done

相关文章

  • git归档时如何同步子模块文件

    背景描述: git 项目里有使用到 git submodule ,然后使用了gitlab,当推送到gitlab上时...

  • Node.js之常用内置模块

    含摘录,非原创 fs fs模块就是文件系统模块,负责读写文件,提供了异步和同步的方法。 读文件 异步读文件: 同步...

  • Ansible常用模块

    git模块 简介 此模块用于checkout远程git仓库中的文件 使用要求(在执行模块的主机上) git>=1....

  • Python入门教程系列:tarfile

    既然有压缩模块zipfile,那有一个归档模块tarfile也是很自然的。tarfile模块用于解包和打包文件,包...

  • git 文件同步

    查看git版本 打印版本号为 git version 1.8.3.1 1.在Git Bash中 1.1 说明 首先...

  • git提交代码到多个远程库

    所以需要在本地推送远程时同步到两个不同的git远程仓库 1.修改Config文件 在你的项目目录下找到.git文件...

  • 三:fs模块

    node的fs模块是文件模块,为node自带的模块,负责文件的读写。fs模块可以同步和异步读写文件 1. 异步读取...

  • idea git push 之后显示蓝色

    原因:子模块下面还有 .git 文件夹,相当于两个仓库,删掉子模块下面的 .git 文件夹搞定。

  • VPS配置Git Hooks实现hexo博客更新

    客户端使用Hexo生成静态文件,通过Git推送到VPS的Git仓库。VPS配置Git Hooks,将静态文件同步到...

  • git删除/移动文件 2020-03-03(未经允许,禁止转载)

    问题背景 git仓库里的文件堆放比较随意,自己想整理一下归档到分类好的文件夹里面去,这就涉及到git文件移动 gi...

网友评论

      本文标题:git归档时如何同步子模块文件

      本文链接:https://www.haomeiwen.com/subject/ufcofhtx.html