Mac/Linux: 一条命令自动递归拉取当前下所有git仓库的代码

简介: 随着仓库越来越多,特别是公司的一大堆子仓库....每次都要手动fetch或者rebase,对我来说挺痛苦的~~~所以我选择了用脚本来解决我的痛点...第二版(2020-11-26): www.yuque.com/crper/blog/…

网络异常,图片无法展示
|


前言


随着仓库越来越多,特别是公司的一大堆子仓库....


每次都要手动fetch或者rebase,


对我来说挺痛苦的~~~


所以我选择了用脚本来解决我的痛点...


第二版(2020-11-26): www.yuque.com/crper/blog/…


效果图


网络异常,图片无法展示
|


注意点


  • 仓库需要至少关联一个远程分支
  • 拉取的仓库有改动记得提前stash(干净更好)


虽然这两个问题没解决也问题不大,


只是抛出git的一些异常警告,并不会中断其他仓库的拉取


实现代码


multiple-git-pull.sh


递归匹配


#!/bin/zsh
find . -type d -name .git -exec sh -c "cd \"{}\"/../ && pwd && git pull --rebase" \;
# 命令剖析
# 没有控制目录层级就会一直往下找!
# 就是寻找当前及子目录为.git的,找到就执行一条sh(sh -c是把紧接着的字符串当做命令解析)
# shell 就是依次进入到匹配项
## pwd 打印当前路径(cd 后就是进去的路径)
## git pull --rebase(就是变基远程代码到本地,保证记录的一致性!)


限制查找层级


# 当然find还有很多实用的参数,我们可以更加细化的配置,
# 比如聚目录查找层级: maxdepth(最大)  , mindepth(最小) 
find . -maxdepth 3 -type d -name .git  -exec sh -c "cd \"{}\"/../ && pwd && git  pull --rebase" \;


# 然后在对应的shell的配置文件写个alias...
# 代码也很简单,就是一些Linux的基础语法,
# 执行用户家目录对应的脚本路径..
# .是一种姿势
# shell(bash / zsh) + scripts也是一种
# 还有一两种,但是常用的基本上面两种
# 若是不能执行记得chmod a+x scripts(赋予脚本执行权限)
alias mrf=". ~/Code/multiple-git-pull.sh"
目录
相关文章
|
22天前
|
Linux 应用服务中间件 Shell
二、Linux文本处理与文件操作核心命令
熟悉了Linux的基本“行走”后,就该拿起真正的“工具”干活了。用grep这个“放大镜”在文件里搜索内容,用find这个“探测器”在系统中寻找文件,再用tar把东西打包带走。最关键的是要学会使用管道符|,它像一条流水线,能把这些命令串联起来,让简单工具组合出强大的功能,比如 ps -ef | grep 'nginx' 就能快速找出nginx进程。
257 1
二、Linux文本处理与文件操作核心命令
|
7天前
|
存储 安全 Linux
Linux卡在emergency mode怎么办?xfs_repair 命令轻松解决
Linux虚拟机遇紧急模式?别慌!多因磁盘挂载失败。本文教你通过日志定位问题,用`xfs_repair`等工具修复文件系统,三步快速恢复。掌握查日志、修磁盘、验重启,轻松应对紧急模式,保障系统稳定运行。
102 2
|
17天前
|
缓存 监控 Linux
Linux内存问题排查命令详解
Linux服务器卡顿?可能是内存问题。掌握free、vmstat、sar三大命令,快速排查内存使用情况。free查看实时内存,vmstat诊断系统整体性能瓶颈,sar实现长期监控,三者结合,高效定位并解决内存问题。
64 0
Linux内存问题排查命令详解
|
22天前
|
安全 Ubuntu Unix
一、初识 Linux 与基本命令
玩转Linux命令行,就像探索一座新城市。首先要熟悉它的“地图”,也就是/根目录下/etc(放配置)、/home(住家)这些核心区域。然后掌握几个“生存口令”:用ls看周围,cd去别处,mkdir建新房,cp/mv搬东西,再用cat或tail看文件内容。最后,别忘了随时按Tab键,它能帮你自动补全命令和路径,是提高效率的第一神器。
469 2
|
29天前
|
Linux
linux命令—stat
`stat` 是 Linux 系统中用于查看文件或文件系统详细状态信息的命令。相比 `ls -l`,它提供更全面的信息,包括文件大小、权限、所有者、时间戳(最后访问、修改、状态变更时间)、inode 号、设备信息等。其常用选项包括 `-f` 查看文件系统状态、`-t` 以简洁格式输出、`-L` 跟踪符号链接,以及 `-c` 或 `--format` 自定义输出格式。通过这些选项,用户可以灵活获取所需信息,适用于系统调试、权限检查、磁盘管理等场景。
|
网络安全 开发工具 git
mac中配置git信息
mac中配置git信息
342 0
|
29天前
|
前端开发 安全 测试技术
Postman Mac 版安装终极指南:从下载到流畅运行,一步到位
Postman 是 API 开发与测试的高效工具,支持各类 HTTP 请求调试与团队协作。本文详解 Mac 版下载、安装步骤,助你快速上手。同时推荐一体化 API 协作平台 Apifox,集文档、调试、测试于一体,提升开发效率与团队协同能力。
|
4月前
|
iOS开发 MacOS 索引
在不受支持的 Mac 上安装 macOS Tahoe 26
在不受支持的 Mac 上安装 macOS Tahoe 26
264 0
在不受支持的 Mac 上安装 macOS Tahoe 26
|
7月前
|
Ubuntu Linux Shell
Ubuntu gnome WhiteSur-gtk-theme类mac主题正确安装和卸载方式
通过这个过程,用户不仅可以定制自己的桌面外观,还可以学习到更多关于 Linux 系统管理的知识,从而更好地掌握系统配置和主题管理的技巧。
873 12