有时候,很久不接触的项目,突然要更新使用,而又懒的一个目录一个目录的去做更新处理,顾整理了一个shell脚本来做处理,同时也做为之前写的一篇文章的更新吧!链接 :http://genggeng.iteye.com/blog/1128679
代码如下:
#!/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",这里将它重定向到日志中做处理
今天又对脚本进行了更新、处理,如下:
#!/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指令的Shell脚本,能够快速便捷地管理Git库,包括添加修改、提交修改、显示库状态、推送到远程库、从远程库更新到本地、版本恢复等操作。 使用方法: 1. 在Linux系统中,将本文件放在Git库目录下,利用Shell运行...
windows 64位可用,亲自测试,解压后,点击里面的GitHub.application直接安装,然后自动生成桌面快捷方式
此Shell脚本将更新文件夹中所有的git存储库 指示 要更新文件夹中的所有git repos,您可以使用: $ ./updateRepos.sh all 或者 $ ./updateRepos.sh -a 要评估哪个回购更新,您可以使用: $ ./updateRepos.sh each...
git shell 客户端增强
一键更新git脚本,使用该shell脚本可以使用一键即可更新所有关联的git目录资源到本地。
2.查看Git版本:git --version 3.配置用户信息:git config --global user.name “用户名” 配置用户邮箱:git config --global user.email “用户email” 4.查看配置的用户信息:git config --list
适用于svn迁移git自动化脚本,配置好参数即可
1.在shell目录右键->新建(项),然后重命名为 Git Bash Here,此时右键菜单会显示出“Git Bash Here”。 2.给gitbash 添加图片: 选中 Git Bash Here,右键新建(字符串值),并重命名为Icon,Icon的值设置为D:\...
为此我参考srs的shell脚本,替换成ffmpeg-master.zip,并将h264编解码相关的aac、x264资源均做了更新。并更新了depends,方便minmal安装的linux。本人在centos6、7下均测试通过。 【说明】 #tar -xvf build_ffmpeg-...
Jenkins+Git+Maven+Shell+Tomcat持续集成环境 Jenkins+Git+Maven+Shell+Tomcat持续集成环境
df-git.sh工作方式类似于git本身,但始终作用于目录~/.df-git/ ,该目录中将保存您的Dwarf Fortress文件的副本。 df-start.sh但是提供围绕包装df-git.sh前和开始矮人要塞本身经过透明地管理git仓库。 这样,一旦...
docker项目自动git拉取自动发布shell脚本
一个类似于 Unix 的shell 命令,用于使用 git 碰撞新版本的“包”。 约定、限制和假设 遵循语义版本控制 在您的项目中有两个必需的主分支,一个用于活动开发的分支(默认名称:'dev')和一个用于发布的分支(默认...
更新当前目录下所有 git 目录的简单二进制文件。 这个怎么运作 该脚本将在 git 项目上运行 git fetch。 之后,如果项目没有任何未提交的更改,将尝试运行 git rebase origin/master ,否则它会忽略 rebase。 请...
在服务器端 通过.sh shell脚本启动datax工具 启动脚本放置在datax的bin目录下,进入bin目录通过./start.sh /job/json文件名称 启动datax 工具
面对100多个git仓库,手工同步更新是一件麻烦而痛苦的事情!可使用git脚本+定时任务,实现自动同步。解放自己,做更有意义的事情。 调用方法: sh /opt/git-repo-sync-script.sh /opt/GitRepoClone/
gitsh程序是git的交互式shell。 在gitsh内,您可以发出任何git命令,甚至使用您的本地别名和配置。
Git模块 软件包git-module是一个Go模块,用于通过shell命令访问Git。要求Go版本必须至少为1.9 。 Git版本必须不少于1.8.3 。 对于Windows用户,请尝试使用两者的最新版本。执照该项目已获得MIT许可。 有关完整的许可...
git批量拉取项目的脚本,简便快捷
4.2 思考:为什么工作区根目录下有一个 .git 目录/ 60 4.3 思考:git config 命令的各参数有何区别/ 63 4.4 思考:是谁完成的提交/ 65 4.5 思考:随意设置提交者姓名,是否太不安全/ 67 4.6 思考:命令别名是干什么...