首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一行shell脚本 | 自动化操作多个git仓库

一行shell脚本 | 自动化操作多个git仓库

作者头像
efonfighting
发布2019-11-25 22:11:59
2.4K0
发布2019-11-25 22:11:59
举报
文章被收录于专栏:一番码客一番码客

前言

开源项目作为一个大宝库给我们提供了非常多的资源,在github上,我们一般会同时关注多个项目,我们总有这样的需求,将所有关注的项目实时备份到本地,一是作者可能删除项目,二是方便本地随时查看。

那么这里一番介绍两个一行shell命令操作所有git仓库的方法,希望对大家有帮助。

脚本一

  • 一行脚本: cat content.txt | while read line ; do git clone $line; done;
  • 功能描述:

clone下载所有文本中的仓库到本地。

  • 实现方法:

将所有关注的git库地址放到一个文本文件里,一个git库一行。 cat方式打印出文本内容,并用管道符|传递出来。 while read line方式读取每一行的内容,作为参数,git clone $地址即可。

  • content.txt示例: git@github.com:xiaolai/regular-investing-in-box.git git@github.com:chaozh/awesome-blockchain-cn.git git@github.com:jackfrued/Python-100-Days.git git@github.com:nndl/nndl.github.io.git
  • 等同脚本: #!/bin/bash cat content.txt | while read line do git clone $line
  • done

脚本二

  • 一行脚本 while true;do ls -F | grep "/$" | while read line ;do cd $line;git pull ;cd ../ ; done;sleep 600;done
  • 功能描述

同步该目录下所有git库的代码到本地,一小时同步一次。

  • 实现方法:

ls -F | grep "/$"实现打印该目录下所有文件夹。 读取打印的每行内容并进入该文件夹,执行git pull命令,执行完后退回上一级目录,循环执行。 while true一直执行,sleep实现等待。

  • 等同脚本:
#!/bin/bash
while true
do
  ls -F | grep "/$" | while read line
  do
      cd $line
      git pull
      cd ../
  done
  sleep 600
done

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-11-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 一番码客 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 脚本一
  • 脚本二
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档