一键更新所有git项目的脚本示例

我们一直推荐使用git管理代码仓库,也会下载一些开源的项目学习,但是如果项目太多,要在本地更新时一个一个的git pull会很麻烦,比如我最近在折腾AI,下载了一堆开源项目,如果要一个个更新可要命了: file

那有没有一键更新所有项目的方案?有,脚本如下:

#!/bin/bash

# 设置项目目录的父目录
projects_directory=$PWD

# 检查目录是否存在
if [ ! -d "$projects_directory" ]; then
    echo "项目目录不存在:$projects_directory"
    exit 1
fi

# 进入项目目录
cd "$projects_directory"

# 获取项目目录列表
project_dirs=$(ls -d */)

# 遍历项目目录并执行 git pull
for project_dir in $project_dirs; do
    echo "进入 $project_dir"
    cd "$project_dir"

    # 检查是否是一个 Git 仓库
    if [ -d ".git" ]; then
        # 执行 git pull
        git pull
    else
        echo "$project_dir 不是一个 Git 仓库,跳过更新"
    fi

    # 返回上级目录
    cd ..
done

echo "所有项目已更新完毕"

把这个脚本取名如git-pull.sh,然后Open Git Bash here打开git bash运行这个脚本,会自动更新当前目录下的所有项目,同时会跳过非git仓库的目录: file

如果你还想进一步偷懒,git bash都不想打开,我们还可以建一个windows的批处理脚本,如update.cmd,放在和git-pull.sh相同的目录,内容如下:

@echo off
echo --- Git-Bash ---
"C:\Program Files\Git\bin\bash" --login -c "./git-pull.sh"
pause

现在直接双击update.cmd脚本也可以直接自动更新目录下的所有项目: file

京ICP备13031296号-4