更新本地项目到最新git版本脚本

由于平时工作中项目较多,每天刚上班都需要更新一下项目代码,一个一个更新感觉稍微麻烦了一些,所以写了一个简单的shell脚本,每天到公司先执行一遍即可。

bash 复制代码
#!/bin/bash

# 进入指定的目录
target_dir="$1";
cd "$target_dir";
echo "当前工作目录:$target_dir";
# 列出所有目录
echo "========================== 待更新目录 ==========================";
ls -l;
echo -e "\n"

## 所有目录名称push进数组

# 循环索引
c=0;
for file in `ls`
do
  filelist[$c]=$file
  c=`expr $c + 1`
done

## 遍历数组并执行git命令

# 计数
num=0;
for i in ${filelist[@]};
do {
    # 更新目录
    git_dir="$target_dir/$i"
    cd "$git_dir"
    if [[ -e ".git" ]]; then
        # 执行 git pull 命令
        echo -e "\n"
        echo "开始更新 $git_dir 项目..."
        git pull
        echo "$git_dir 项目更新完成"
        num=`expr $num + 1`
        echo -e "\n"
    else
        echo "$i 不是 git 目录";
        echo -e "\n"
    fi
}
done

# 获取数组总长度
length=${#filelist[@]}
echo -e "\n"
echo "该目录下文件(夹)总数:$length"
echo -e "\n"
echo "========================== 本次共更新了 $num 个 Git项目 =========================="

思路很简单,输入想要更新的父目录,ls列出当前目录下所有文件夹,挨个遍历其中的每个文件夹,如果文件夹内包含.git文件,认为该文件夹是个git目录,然后执行git pull命令更新。

使用方式

sh gittask.sh "/workspace"

./gittask.sh "/workspace"

如果当前目录是想要更新的父目录,则可以

pwd | xargs sh gittask.sh

使用效果如下

相关推荐
hh随便起个名3 小时前
适合小白的git的基础使用方法
git
我会一直在的3 小时前
Devps持续集成
git·ci/cd
CoderJia程序员甲4 小时前
GitHub 热榜项目 - 日榜(2026-02-08)
git·ai·开源·llm·github
Serene_Dream6 小时前
git 常用命令
git
jiayong236 小时前
Detached HEAD 状态详解
git
李少兄15 小时前
在 IntelliJ IDEA 中修改 Git 远程仓库地址
java·git·intellij-idea
先跑起来再说21 小时前
Git 入门到实战:一篇搞懂安装、命令、远程仓库与 IDEA 集成
ide·git·后端·elasticsearch·golang·intellij-idea
承渊政道1 天前
Linux系统学习【Linux系统的进度条实现、版本控制器git和调试器gdb介绍】
linux·开发语言·笔记·git·学习·gitee
Doro再努力1 天前
【Linux操作系统12】Git版本控制与GDB调试:从入门到实践
linux·运维·服务器·git·vim
摇滚侠1 天前
MAC IDEA GIT 提交区显示了几个不存在的目录
git·idea