`

shell创建git项目

 
阅读更多

    公司一直在使用git来做项目管理,对于git与svn的优劣对比,大家可去google

 

    经常要去创建一些git项目来做新项目的开发,一些流程化的操作,每次去做就比较烦感,顾就想写个脚本来做去这些工作!业余时间整理了下,测试后,已满足现在的要求!后续有时间将做一些优化,包括:

 

    1. web化来做对文件系统进行操作处理,对于项目成员、成员累计数,项目数等都存入DB中,做界面的操作!这样就不再需要客户端的git安装要求及操作系统要求。

    2. 创建项目时,申请者提交申请给管理员,由管理员做审批校验后,授权该成员管理此项目,其实就是个马甲!

    3. 项目排重(此脚本未做项目排重处理)

    4. 。。。。。。

 

    脚本如下,可做参考:

 

 

#!/bin/bash 

#创建一个git项目的脚本

PROJECTS_DIR="/home/gavingeng/projects/email/"
GIT_PROJECT_DIR=$PROJECT_DIR"gitosis-admin/"
#GIT_PROJECT_DIR="/home/gavin/test"

#use info
function info(){
    echo "please like this:\t ./create_git_repo.sh test_project\n"
    echo "test_project is you want created project! "
}

#update git conf for add project
#未增加git 操作失败回退,以及未安装git时的提示
function update_git_conf(){
    content="[group gp_$project]\nwritable=$project\nmembers=gavingeng " 
    #echo -e $content >>/home/gavingeng/tmp/info.log 
    echo -e $content >>gitosis.conf  #echo -e 对于转义字符会做处理
    `git add .`
    `git commit -m "add project :$PROJECT"`
    `git push`
    #`git log`
    sleep 2
}

#创建git项目,并提交到git 管理
function create_project(){
    `cd $PROJECTS_DIR`
    
    mkdir $PROJECTS_DIR$project
    cd $PROJECTS_DIR$project
    `git init`
    `echo "init file" >init.txt`
    `git add .`
    `git commit -a -m "init repo:$project"`
    `git push origin master:refs/heads/master`
    #wiki上我写的那几项git操作
    
}

GIT=`which git`

if [ -z $GIT ];then
    echo "please install git; git link:http://xx.xx.xx/download.html"
    exit 0
fi
#这里可以采用$1参数来做
cd $GIT_PROJECT_DIR
if [ -z $1 ];then
    read project
fi

#回车的判断#
if [ -z $project ];then
    echo $project" is empty"
    exit 0
fi

if [ -n $project ];then
    echo $project
    update_git_conf
    sleep 2
    create_project 
else
    info
    exit 1
fi
 

以上就是基本的git创建项目操作,或许你有更简洁的书写方式,请回帖!

后续将会再做一些处理。

0
3
分享到:
评论
1 楼 genggeng 2011-11-09  
又做了些小小的改动,将那些不和谐的提示重定向

#!/bin/bash

#创建一个git项目的脚本

PROJECTS_DIR="/home/gavingeng/projects/email/"
GIT_PROJECT_DIR=$PROJECT_DIR"gitosis-admin/"
#GIT_PROJECT_DIR="/home/gavin/test"

#use info
function info(){
    echo "please like this:\t ./create_git_repo.sh test_project\n"
    echo "test_project is you want created project! "
}

#update git conf for add project
#未增加git 操作失败回退,以及未安装git时的提示
function update_git_conf(){
    content="[group gp_$project]\nwritable = $project\nmembers = gavin "
    #echo -e $content >>/home/gavingeng/tmp/info.log
    echo -e $content >>gitosis.conf #echo -e 对于转义字符会做处理
    sleep 2
  `git pull`
    `git add .`
    `git commit -m "add project :$PROJECT"`
    `git push`
    #`git log`
    sleep 2
}

#创建git项目,并提交到git 管理
function create_project(){
    `cd $PROJECTS_DIR`
   
    mkdir $PROJECTS_DIR$project
    cd $PROJECTS_DIR$project
    `git init`
    `echo "init file" >init.txt`
    `git add .`
    `git commit -a -m "init repo:$project"` >>/home/gavingeng/tmp/test.log 2>&1 &
    `git push origin master:refs/heads/master` >>/home/gavingeng/tmp/test.log 2>&1 &
    #wiki上我写的那几项git操作
   
}

GIT=`which git`

if [ -z $GIT ];then
    echo "please install git; git link:http://xx.xx.xx/download.html"
    exit 0
fi
#这里可以采用$1参数来做
cd $GIT_PROJECT_DIR
if [ -z $1 ];then
    read project
fi

#回车的判断#
if [ -z $project ];then
    echo $project" is empty"
    exit 0
fi

if [ -n $project ];then
    echo $project
    update_git_conf
    sleep 2
    #`cd $PROJECTS_DIR`
    #mkdir $PROJECTS_DIR$project
    #cd $PROJECTS_DIR$project
    #echo $PWD
    create_project
else
    info
    exit 1
fi



相关推荐

    GitHub Git Shell 客户端 Windows 64 可用

    通过Git Shell,用户可以执行如克隆、提交、推送和拉取等Git操作,有效地管理他们的代码库,并与GitHub上的项目进行互动。使用说明.txt文件的辅助,使得初学者也能更好地理解和掌握Git Shell的使用。

    通过Shell脚本,结合Git实现增量部署基于Maven的Java项目.zip

    本文将详细探讨如何通过Shell脚本和Git实现基于Maven的Java项目的增量部署。 首先,让我们理解核心组件的作用: 1. **Git**:这是一个分布式版本控制系统,用于跟踪对代码库的修改。在增量部署过程中,Git帮助我们...

    linux-gitshell客户端增强

    2. **别名和配置**:通过创建Git别名,我们可以将复杂的命令简化为短小的命令行,例如`gc`代替`git commit -m`。此外,调整Git配置(如`core.autocrlf`、`color.ui`)可以改善用户界面和交互体验。 3. **Git GUI...

    Git常用命令,你值得拥有

    Git 是一款强大的分布式版本控制系统,不仅广泛应用于大型开源项目的源代码管理,同时也非常适合用于管理和维护个人文档及源代码。其核心优势在于高效的数据完整性保障机制、非线性的开发流程支持以及高性能的操作...

    将git项目自动化部分放到SAE的svn服务器上_Shell_下.zip

    1. **创建Git分支**:在开始之前,确保你的项目已经在Git中进行了初始化,并且有一个主分支(通常为`master`)。为了保持原始Git分支的完整性,你可以创建一个新的分支,如`sae-deploy`,用于SAE部署。 2. **配置...

    GIT基本操作使用分享,基础知识

    gittag - 创建标签 - 查看所有的标签: ```shell git tag ``` - 创建并附加信息到标签: ```shell git tag [tag-name] -m "message" ``` - 删除标签: ```shell git tag -d [tag-name] ``` #### 四、...

    git-command

    它最初由 Linus Torvalds 在 2005 年为了帮助 Linux 内核开发而创建,现在广泛应用于各种软件项目的版本控制。 #### 二、远程仓库相关命令 1. **检出仓库**: ```shell $ git clone git://github....

    gitlab修改创建项目的拉取git地址

    Gitlab 修改创建项目的拉取 Git 地址 Gitlab 是一个基于 web 的版本管理系统,使用 Git 作为版本控制系统。Gitlab 服务器可以配置成使用域名或 IP 地址访问项目的 Git 地址。在本文中,我们将介绍如何修改 Gitlab ...

    git冲突使用

    它最初由Linus Torvalds于2005年为Linux内核的开发而创建,现已被广泛应用于各种软件项目的版本控制。 #### 二、Git冲突的概念 在多人协作的项目中,当两个或多个开发者同时对同一个文件进行修改时,就可能会发生...

    linux-gitsh一个定制的bash环境适合git的工作

    Linux Git Shell,通常简称为`git-sh`,是一个基于Bash的定制shell,专为Git开发者设计,提供了更高效和方便的Git操作环境。这个工具是GitHub上许多项目中的一个实用工具,它使得日常的Git操作更为流畅,尤其是在...

    Git代码的分布式管理工具的简单使用

    Git 是一个开源的分布式版本控制系统,用于高效地处理从小型到大型项目的版本管理问题。相比于集中式版本控制系统(如SVN),Git 的每一个克隆都是一个完整的数据库副本,包含了完整的历史记录。这种设计使得Git在...

    使用git命令方式向GitHub服务器提交

    其中`git@XXX.git`是远程仓库的地址,可以在这个项目的GitHub页面上找到。执行完这一步后,整个项目就会被下载到本地的一个新目录中。 进入克隆下来的目录: ```shell cd repository ``` --- ### 三、添加与提交...

    git上传代码初识

    如果你需要从零开始创建一个新的版本库,则可以先在本地创建一个工作目录,然后通过`git init`命令对其进行初始化。初始化之后,该目录下的所有文件都会被纳入版本控制。接着,如果需要将这个版本库同步到远程...

    Git 和 GitDesktop For Windows

    Git-2.19-for-windows.exe是Git的最新Windows版安装包,包含了Git的所有核心功能,包括命令行工具和集成的shell。 Git的核心特性包括: 1. 分布式:每个开发者的本地机器上都有一个完整的代码库副本,可以离线工作...

    《git基础知识》PPT课件.ppt

    5. 如何创建某个项目的 Git 服务器 五、Git 权限问题 1. Git 架设 2. 使用 HTTP 就是走 Web 服务器的权限 3. 走 SSH 就是取决于各个帐号的权限 4. 多人共用 Git 仓库的解决方法: * 建立新帐号 * 使用 Git-...

    搭建基于SSH公钥的Git服务器.docx

    `sudo chsh -s /usr/bin/git-shell git` 客户端配置 1. 安装 Git 下载并安装 msysGit: `http://git-scm.com/download/win` 2. 运行前配置 配置用户名和邮箱: `git config --global user.name "John Doe"` `...

    git分支管理策略

    ### git分支管理策略详解 #### 一、引言 在当今的软件开发环境中,版本控制系统是必不可少的一部分。其中,Git因其高效性和灵活性成为了最受欢迎的选择之一。对于任何希望提高团队协作效率、确保代码质量和版本可...

    git 常见的命令

    执行此命令后,Git 会在当前目录下创建一个隐藏的 `.git` 文件夹,用于存储所有与项目相关的元数据。 - 示例: ```shell cd /path/to/your/project git init ``` #### 三、查看文件状态 - **`git status`**:...

Global site tag (gtag.js) - Google Analytics