公司一直在使用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创建项目操作,或许你有更简洁的书写方式,请回帖!
后续将会再做一些处理。
分享到:
相关推荐
通过Git Shell,用户可以执行如克隆、提交、推送和拉取等Git操作,有效地管理他们的代码库,并与GitHub上的项目进行互动。使用说明.txt文件的辅助,使得初学者也能更好地理解和掌握Git Shell的使用。
本文将详细探讨如何通过Shell脚本和Git实现基于Maven的Java项目的增量部署。 首先,让我们理解核心组件的作用: 1. **Git**:这是一个分布式版本控制系统,用于跟踪对代码库的修改。在增量部署过程中,Git帮助我们...
2. **别名和配置**:通过创建Git别名,我们可以将复杂的命令简化为短小的命令行,例如`gc`代替`git commit -m`。此外,调整Git配置(如`core.autocrlf`、`color.ui`)可以改善用户界面和交互体验。 3. **Git GUI...
Git 是一款强大的分布式版本控制系统,不仅广泛应用于大型开源项目的源代码管理,同时也非常适合用于管理和维护个人文档及源代码。其核心优势在于高效的数据完整性保障机制、非线性的开发流程支持以及高性能的操作...
1. **创建Git分支**:在开始之前,确保你的项目已经在Git中进行了初始化,并且有一个主分支(通常为`master`)。为了保持原始Git分支的完整性,你可以创建一个新的分支,如`sae-deploy`,用于SAE部署。 2. **配置...
gittag - 创建标签 - 查看所有的标签: ```shell git tag ``` - 创建并附加信息到标签: ```shell git tag [tag-name] -m "message" ``` - 删除标签: ```shell git tag -d [tag-name] ``` #### 四、...
它最初由 Linus Torvalds 在 2005 年为了帮助 Linux 内核开发而创建,现在广泛应用于各种软件项目的版本控制。 #### 二、远程仓库相关命令 1. **检出仓库**: ```shell $ git clone git://github....
Gitlab 修改创建项目的拉取 Git 地址 Gitlab 是一个基于 web 的版本管理系统,使用 Git 作为版本控制系统。Gitlab 服务器可以配置成使用域名或 IP 地址访问项目的 Git 地址。在本文中,我们将介绍如何修改 Gitlab ...
它最初由Linus Torvalds于2005年为Linux内核的开发而创建,现已被广泛应用于各种软件项目的版本控制。 #### 二、Git冲突的概念 在多人协作的项目中,当两个或多个开发者同时对同一个文件进行修改时,就可能会发生...
Linux Git Shell,通常简称为`git-sh`,是一个基于Bash的定制shell,专为Git开发者设计,提供了更高效和方便的Git操作环境。这个工具是GitHub上许多项目中的一个实用工具,它使得日常的Git操作更为流畅,尤其是在...
Git 是一个开源的分布式版本控制系统,用于高效地处理从小型到大型项目的版本管理问题。相比于集中式版本控制系统(如SVN),Git 的每一个克隆都是一个完整的数据库副本,包含了完整的历史记录。这种设计使得Git在...
其中`git@XXX.git`是远程仓库的地址,可以在这个项目的GitHub页面上找到。执行完这一步后,整个项目就会被下载到本地的一个新目录中。 进入克隆下来的目录: ```shell cd repository ``` --- ### 三、添加与提交...
如果你需要从零开始创建一个新的版本库,则可以先在本地创建一个工作目录,然后通过`git init`命令对其进行初始化。初始化之后,该目录下的所有文件都会被纳入版本控制。接着,如果需要将这个版本库同步到远程...
Git-2.19-for-windows.exe是Git的最新Windows版安装包,包含了Git的所有核心功能,包括命令行工具和集成的shell。 Git的核心特性包括: 1. 分布式:每个开发者的本地机器上都有一个完整的代码库副本,可以离线工作...
5. 如何创建某个项目的 Git 服务器 五、Git 权限问题 1. Git 架设 2. 使用 HTTP 就是走 Web 服务器的权限 3. 走 SSH 就是取决于各个帐号的权限 4. 多人共用 Git 仓库的解决方法: * 建立新帐号 * 使用 Git-...
`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` 文件夹,用于存储所有与项目相关的元数据。 - 示例: ```shell cd /path/to/your/project git init ``` #### 三、查看文件状态 - **`git status`**:...