我们一直推荐使用git管理代码仓库,也会下载一些开源的项目学习,但是如果项目太多,要在本地更新时一个一个的git pull
会很麻烦,比如我最近在折腾AI,下载了一堆开源项目,如果要一个个更新可要命了:
那有没有一键更新所有项目的方案?有,脚本如下:
#!/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仓库的目录:
如果你还想进一步偷懒,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
脚本也可以直接自动更新目录下的所有项目: