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

一番码客 : 挖掘你关心的亮点。
http://efonfighting.imwork.net

本文目录:

前言

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

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

不知道大家有没有遇到过这样的场景:

cd 到一个目录下,想要对一些文件做批量性的操作,例如批量重命名。

这时大家可选择创建一个 python 脚本或者 shell 脚本文件,首先 touch,然后 vi,然后执行。

如果 shell 用的比较熟,我们可以一行命令直接在终端实现了,也许对于简单逻辑的功能,用一行代码实现是一种简便的解决办法。

也许有朋友有这样的疑问或其他场景类似需求,一行命令行能不能实现复杂的功能;特别是在嵌入式的 linux 平台做开发的时候。

对于复杂的功能实现,还是好好写 shell 脚本文件吧,也许 python 是更好的方法。

简单应用,shell 大神请忽略,欢迎大神多多提供经验、捷径、方法或者小技巧,谢谢!

脚本一

  • 一行脚本:

    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
    

一番今日

这两天降温了,冬天来了,秋裤也上岗了,离过年也不远了。昨天读了一篇关于斜杠文化的文章,很不错。要写出这样一篇文章需要很大阅读量、清晰的思路、熟练的文笔。关于这篇文章感兴趣的朋友可以在“阅读原文”里查看“专题-自由职业之路”,里面有文章《被90%中国人误解了12年的斜杠》的链接

一番雾语:多读书,才能引经据典,出口成章,下笔入神。


免费知识星球: 一番码客-积累交流
微信公众号:一番码客
微信:Efon-fighting
网站: http://efonfighting.imwork.net

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Git指令的Shell脚本,能够快速便捷地管理Git库,包括添加修改、提交修改、显示库状态、推送到远程库、从远程库更新到本地、版本恢复等操作。 使用方法: 1. 在Linux系统中,将本文件放在Git库目录下,利用Shell运行本文件; 2.在windows系统中,需下载安装与操作系统相对应的Git软件,并将本文件放在Git库目录下,双击即可运行。 运行示例: Please choose the first letter of options. [Add|Commit|Diff|Fetch|Exit|Help|Log|Push|User|Reset|Status]? h A: Add all changes to repository. C: Commit all changes to repository. D: Show differences between current version with HEAD->. E: Exit shell script. F: Fetch origin/master and merge. L: Show latest two-weeks logs of repository. P: Push commissions to origin/master. U: User command mode(Press ‘Enter’ to exit). R: Reset current version according version_id. S: Show status of repository. Please choose the first letter of options. [Add|Commit|Diff|Fetch|Exit|Help|Log|Push|User|Reset|Status]? s On branch master Your branch is up-to-date with 'origin/master'. Changes not staged for commit: (use "git add ..." to update what will be committed) (use "git checkout -- ..." to discard changes in working directory) modified: Git.sh modified: PyNote/PyNote_2.md no changes added to commit (use "git add" and/or "git commit -a") Please choose the first letter of options. [Add|Commit|Diff|Fetch|Exit|Help|Log|Push|User|Reset|Status]? a On branch master Your branch is up-to-date with 'origin/master'. Changes to be committed: (use "git reset HEAD ..." to unstage) modified: Git.sh modified: PyNote/PyNote_2.md

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一番码客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值