shell 更新所有git目录
2013-11-29 12:12
92 查看
有时候,很久不接触的项目,突然要更新使用,而又懒的一个目录一个目录的去做更新处理,顾整理了一个shell脚本来做处理,同时也做为之前写的一篇文章的更新吧!链接 :/article/4030416.html
代码如下:Shell代码
#!/bin/bash -x
PROJECTS_DIR=/home/gavingeng/projects/email
function update_all()
{
for d in `ls`
do
# echo $d;
cd $PROJECTS_DIR/$d
echo "update project:current_dir: $PWD"
`git pull` >>/home/gavingeng/tmp/test.log 2>&1 &
sleep 5
echo "update success ^_^"
done
}
function update()
{
echo "hello ,u can update"
`git pull` >>/tmp/test.log 2>&1 &
echo "update success ^_^"
}
cd $PROJECTS_DIR
if [ -z "$1" ];then
update_all
elif [ -d "$PROJECTS_DIR/$1" ];then
cd $PROJECTS_DIR/$1
echo $PWD
update
else
echo "not exist \"$PROJECTS_DIR/$1\""
exit 0;
fi
在做git更新时,若没有更新,就会出现"Already date to date",这里将它重定向到日志中做处理
今天又对脚本进行了更新、处理,如下:
Shell代码
#!/bin/bash -x
PROJECTS_DIR=/home/gavingeng/projects/email
##排除以下情况:
##1.非目录
##2.非git目录
function is_git_dir(){
param=`find $PWD -name ".git"`
if [ -z "$param" ];then
return 1 #1为假
else
return 0 #0为真
fi
}
function update_all()
{
for d in `ls`
do
if [ -d "$PROJECTS_DIR/$d" ];then
# echo $d;
cd $PROJECTS_DIR/$d
if is_git_dir $PWD;then
echo "update project:current_dir: $PWD"
`git pull` >>/home/gavingeng/tmp/test.log 2>&1 &
sleep 5
echo "update success ^_^"
else
echo "$PWD is not a git dir!"
fi
else
echo "$d is not a dirctory"
fi
done
}
function update()
{
echo "hello ,u can update"
`git pull` >>/tmp/test.log 2>&1 &
echo "update success ^_^"
}
cd $PROJECTS_DIR
if [ -z "$1" ];then
update_all
elif [ -d "$PROJECTS_DIR/$1" ];then
cd $PROJECTS_DIR/$1
echo $PWD
if is_git_dir $PWD;then
update
else
echo "$PWD is not a git dir!"
fi
else
echo "not exist \"$PROJECTS_DIR/$1\""
exit 0;
fi
改完后,发现if/else逻辑更多了,该想想如何去改了......
相关文章推荐
- 一键更新目录下所有git repo的脚本
- Shell获取某目录下所有文件夹的名称
- shell脚本批量修改目录下所有文件中的部分语句
- [shell opencv] 对指定目录下所有的图片进行加黑边处理
- repo git 更新某个文件目录总结
- Git放弃本地所有修改,强制更新
- linux下设计一个Shell脚本:判断当前工作目录下所有的文件类型。
- Git的使用 强制放弃本地所有修改,获取master中最新版本更新本地
- shell 读取某个目录下的所有文件
- 将目录中的所有文件全部复制到上一层目录中(git bash)
- Shell循环列出目录下所有文件或查找目录下包含指定字符串的文件
- 手动将自己的文件,git上传pull到官网下的目录,实现官网更新
- linux 批量更新所有的git库
- Linux下统计某个目录下所有源代码行数的Shell脚本;
- Linux下使用shell实现上传linux下某个目录下所有文件到ftp
- shell更新git项目
- jenkins+gitlab钩子+shell脚本基于git的tag实现App增量更新
- git 更新某个目录或文件
- shell遍历目录下所有文件
- 批处理文件更新当前SVN目录下的所有文件