有时候,很久不接触的项目,突然要更新使用,而又懒的一个目录一个目录的去做更新处理,顾整理了一个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逻辑更多了,该想想如何去改了......
分享到:
相关推荐
另一个文件“Github_3.3.3.0”可能是一个特定版本的Git Shell安装程序,版本号3.3.3.0,意味着这是软件的某个更新迭代,可能包含了一些修复和改进。 总的来说,这个压缩包提供了一种在Windows 64位系统上轻松安装和...
Git指令的Shell脚本,能够快速便捷地管理Git库,包括添加修改、提交修改、显示库状态、推送到远程库、从远程库更新到本地、版本恢复等操作。 使用方法: 1. 在Linux系统中,将本文件放在Git库目录下,利用Shell运行...
此Shell脚本将更新文件夹中所有的git存储库 指示 要更新文件夹中的所有git repos,您可以使用: $ ./updateRepos.sh all 或者 $ ./updateRepos.sh -a 要评估哪个回购更新,您可以使用: $ ./updateRepos.sh each...
Git Shell是一个基于命令行的Git交互界面,通常用于执行Git的基本操作,如克隆、提交、推送和拉取等。通过增强Git Shell,我们可以提高工作效率,更好地管理代码仓库。 描述中的“git shell客户端增强”可能涉及到...
本文将详细探讨如何通过Shell脚本和Git实现基于Maven的Java项目的增量部署。 首先,让我们理解核心组件的作用: 1. **Git**:这是一个分布式版本控制系统,用于跟踪对代码库的修改。在增量部署过程中,Git帮助我们...
下面是一个简单的示例,展示了如何遍历指定目录下的所有Git仓库并拉取更新: ```bash #!/bin/bash # 指定包含Git仓库的目录 REPO_DIR="/path/to/your/repos" # 遍历目录下的每个子目录(假设每个子目录都是一个...
一键更新git脚本,使用该shell脚本可以使用一键即可更新所有关联的git目录资源到本地。
2.查看Git版本:git --version 3.配置用户信息:git config --global user.name “用户名” 配置用户邮箱:git config --global user.email “用户email” 4.查看配置的用户信息:git config --list
1.在shell目录右键->新建(项),然后重命名为 Git Bash Here,此时右键菜单会显示出“Git Bash Here”。 2.给gitbash 添加图片: 选中 Git Bash Here,右键新建(字符串值),并重命名为Icon,Icon的值设置为D:\...
适用于svn迁移git自动化脚本,配置好参数即可
Linux Git Shell,通常简称为`git-sh`,是一个基于Bash的定制shell,专为Git开发者设计,提供了更高效和方便的Git操作环境。这个工具是GitHub上许多项目中的一个实用工具,它使得日常的Git操作更为流畅,尤其是在...
1. 初始化新的Git仓库:使用`git init`命令在当前目录创建一个新的Git仓库。 2. 克隆远程仓库:通过`git clone [url]`命令将远程仓库复制到本地。 3. 添加文件到暂存区:用`git add [filename]`或`git add .`将文件...
该项目是一款集Python、HTML、JavaScript、CSS和Shell于一体的Shunyi Git 42美多商城设计源码,共计包含231个文件,涵盖115个Python脚本、35个HTML页面、24个JPG图片、21个JavaScript脚本、19个PNG图片、3个字体文件...
- 添加当前目录下的所有文件到暂存区: ```shell git add . ``` - 添加指定目录下的所有文件到暂存区: ```shell git add [dir] ``` ##### 3. git commit - 提交暂存区到仓库 将暂存区的文件提交到仓库,...
一旦本地的更改已经提交,下一步就是将这些更改推送到远程仓库,以便团队成员可以访问到这些更新。 ```shell git push -u origin master ``` 这里的`-u`选项用于设置追踪关系,`origin`是远程仓库的名字,`master`...
面对100多个git仓库,手工同步更新是一件麻烦而痛苦的事情!可使用git脚本+定时任务,实现自动同步。解放自己,做更有意义的事情。 调用方法: sh /opt/git-repo-sync-script.sh /opt/GitRepoClone/
Jenkins+Git+Maven+Shell+Tomcat 持续集成环境 本文主要讲述如何使用 Jenkins、Git、Maven、Shell 和 Tomcat 搭建一个持续集成环境,以提高软件开发效率和质量。首先,Jenkins 是一个开源软件项目,旨在提供一个...
如果你需要从零开始创建一个新的版本库,则可以先在本地创建一个工作目录,然后通过`git init`命令对其进行初始化。初始化之后,该目录下的所有文件都会被纳入版本控制。接着,如果需要将这个版本库同步到远程...
Git-2.19-for-windows.exe是Git的最新Windows版安装包,包含了Git的所有核心功能,包括命令行工具和集成的shell。 Git的核心特性包括: 1. 分布式:每个开发者的本地机器上都有一个完整的代码库副本,可以离线工作...
该命令会在当前目录下创建一个名为 `.git` 的隐藏文件夹,用于存储版本库的所有信息。需要注意的是,与传统的集中式版本控制系统(如 SVN)不同,Git 的每一个工作目录实际上都是一个完整的本地仓库。 ##### 2.2 ...