在平时的工作中,遇到一些优秀的开源项目,如spring、dubbo等,如果想阅读它的源代码,我通常都会clone项目到本地的GitHub文件夹,这样大神们后面再提交更新的话,只需要git pull更新一下本地的项目就能做到和远程仓库的代码同步了。可是时间长了就会遇到一个问题,如果GitHub文件夹里的项目太多,更新的话每个文件夹进去执行git pull将会是一件很麻烦的事。于是,花了几分钟,写了个批量更新的脚本。还有那句话,“程序员是世界上最懒的人”。 重复劳动,我们是坚决不会做的。
代码一
- update.bat
1
2
3@echo off
for /d %%i in (*) do if not %%i==[Filter] @cd %cd%\%%i && @git pull
pause注: [Filter] – 过滤的文件夹名称
代码二
- 当然,也可以这样:
- update2.bat
1
2
3@echo off
for /d %%i in (app1,app2,app3,...) do @cd %cd%\%%i && @git pull
pause
代码三
- update.sh
1
2
3
4
5
6
7
8
9
10
11
12
for dir in $(ls -d */)
do
cd $dir
echo "into $dir"
if [ -d ".git" ]; then
git pull
elif [ -d ".svn" ]; then
svn update
fi
cd ..
done代码比较简单,就是遍历文件夹,发现项目目录下有.git文件夹,则执行git pull。很容易理解。
还加入了对svn项目的支持。命名为update.sh,放到GitHub文件夹,添加执行权限,执行./update.sh就可以了。