当一个项目需要纳入到版本控制的时候,选择的工具还是比较多的,最常见的就是工具有CVS,SVN,GIT等。在平时的开发中视情况而定,从来就没有最好的版本控制工具,只有最适合的工具。在这里我习惯用git来管理自己的项目,当然之前使用svn管理的,但是当用了git工具就不愿意再用其它的工具来管理。这里除了习惯之外,git的很多功能是svn不具备的,最简单的就是离线提交,用git管理的项目你会发现整个项目的大小变化不大,不像svn那样每个目录又有一个.svn 的目录,而且会使项目的变得很大。关于git与svn的区别这里就不详细讲解了,请参考(git与svn区别)。

GIT项目管理

  1. GIT 工具的下载

    • windows 平台下可以直接到 git for windows 上下载和安装,另外一种方式就是直接到 github    上搜索一个项目直接clone,按照引导流程你在windows上同样也安装了git,前提是你有github 账号。
      aaarticlea/png;base64,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" alt="" />
    • Linux 平台下,想RedHat,ubuntu,centos 上都不一样,可以直接到网上搜索,以Ubuntu 为例,可以直接用 apt-get install git 就可以安装 git 了。
  2. git 操作(以ubuntu 平台为例)
    • 对于git的操作,或者是对于git的学习,直接下载 progit这本书,里面包含了对git的详细讲解,让你对git有一个全面的认识。在这里我总结下自己认为比较重要的几个部分。

      • git 的基本操作,包括从初始化一个版本到纳入本地管理以及把本地的项目push到git远程仓库中。以及对于提交版本的跟踪,日志的查看等。同样在参考这本书的同时,对于有疑问的地方也可以从到网上查找。
      • 对于服务器上的git的了解,包括对于git支持的协议的了解,最常用的就是 ssh 协议,像github 这种source code 的托管网站采用的是https协议,如何在git服务器上对多个开发者有效的管理,常用的工具就是gitosis, 可以参考 ubuntu 服务器上搭建git
      • 理解git 的分支(本地分支和远程分支),git合并代码的方式 merge 和 rebase 的理解。在这部分需要自己在本地反复的实验,从根本上理解二者的操作,优缺点等,关于这方面的文章也很多,可以参考 git rebase 简介基本篇
      • 最后如果有兴趣,可以对git的原理一探究竟,其实你可以把git理解为是一套内容寻址文件系统,理解git 是如何实现分支的,如果记录每一次提交的快照,是如何存贮这些版本的信息,git 有多少个对象,以及可以尝试用git底层提供的命令来完成对一个项目的管理。
  3. 有了上面的基础,你可以根据自己或者是团队的需求对项目进行版本控制。

 GIT 项目自动部署

对于自动部署我们先虚拟一个应用场景,就是你的代码仓库是位于A服务器上,你的项目运行在B服务器上,这里与WEB项目为主。假设所有开发人员把开发代码往A服务器上提交完之后,希望代码会自动跟新到B服务器上。这样就省去了人工部署项目的步骤,而且服务器上永远都是最新的代码。这里需要强调的是A服务器上的仓库初始化可以有2种方式,那就是,git init 和 git init --bare ,对于这2种区别可以参考 git init & git init --bare difference  这里简单的介绍一下,就是用git init 初始化是带有工作目录的(work tree),也就是可以看到一个完整的项目,用--bare 就只能git相关的文件,没有 work-tree 。这2种初始化方式取决于你的应用场景,值得注意的是 如果你采用 git init 初始化,那么需要修改 ,.git/config 这个文件,让它允许往这个仓库推送代码。

 [receive]
denyCurrentBranch = ignore

这里实现自动部署有2中方案,以Linux平台为例:

  1. 你可以借助shell脚本和cron job 来实现,也就是先编写一个脚本,这个脚本的功能就是从git 仓库下载,然后完成部署。然后编写定时任务让没间隔一个小时去到服务器上下载一次代码。代码如下:

    #!/bin/bash
    
    if [ -f "deploy.lock" ] ; then
    git pull origin master
    else
    git init
    git remote add origin git@server_ip:demo.git
    git pull origin master
    BASE_DIR="/var/www/html/demo"
    chown -R demo:www-data $BASE_DIR
    find -type d -exec chmod {} \;
    find -not -type d -exec chmod {} \;
    chmod u+x deploy.sh
    touch deploy.lock
    fi

    这里以demo这个用户为例,到远程的服务器上下载最新的代码,然后完成一系列部署,这里需要说明的是 ubuntu 下 apache 默认及时用www-data 这个用户和用户组为www-data 来管理项目的,这里我们把项目的所有者修改成demo 这个用户,用户组任然是www-data。这个脚本完成之后就可以把该脚本添加到定时任务中,这里就不讲解定时任务了,可以参考 PHP定时任务实现    。这样做的缺点就是不实时,优点就是容易控制。

  2. 另外一种就是借助git本身的所提供的钩子函数 hooks funciton , 这里就把脚本写在git 的 post-receive 阶段,该脚本位于 项目的hooks 目录下,默认脚本的后缀都是以.simple 结尾的,只要把.simple 去掉就启用了该脚本。这里需要说明的是用户权限的问题。因为git仓库的默认用户和所有者都是git这个用户,那么hook脚本也是会被git这个用户调用的,所以首先确保git这个用户可以下载自己仓库的代码。项目下载同时需要配置.git/config这个文件,表示让git忽略权限:
    [core]
    filemode = false

    其次apache项目运行的所有者和用户组都是www-data , 需要把项目的所有者修改为git这个用户,把git这个用户加入到www-data 这个用户组,此时hook这个脚本才会被git这个用户正确的调用,post-receive脚本的内容如下:

    #!/bin/sh
    #GIT_DIR=$(git rev-parse --git-dir >/dev/null)
    unset $(git rev-parse --local-env-vars)
    cd /var/www/html/demo || exit
    echo "git status info:"
    git status
    echo "***************************"
    git pull origin master
    echo "--- Done! ---"

    当这个脚本完成之后,只要代码提交到A服务器上,A服务器上立马执行钩子函数,代码就会从A服务器上项目的master分支自动跟新到B服务器上(运行环境上),这样就完成了自动部署。这里比较重要的就是用户权限的问题。

DONE!

git管理和自动部署项目的更多相关文章

  1. jenkins+git+maven搭建自动化部署项目环境

    简介    折腾了两个晚上,趁着今晚比较有空,把jenkins+git+maven搭建自动化部署项目环境搭建的过程记录一下,这里我把github作为git的远程仓库(https://github.co ...

  2. 使用jenkins 插件自动部署项目至tomcat

    前面使用maven.ant编译项目就不说,只说一下使用jenkins的插件自动部署项目 1.首先jenkins安装插件Deploy to container Plugin ,下载地址为:https:/ ...

  3. Eclipse自动部署项目到Tomcat的webapps下的有效方法

    开发JavaEE项目,常用的工具有MyEclipse,Eclipse,netBeans等,我比较喜欢用Eclipse,因为相比MyEclipse体积小很多,响应速度也快,且足以满足需求,我喜欢简洁的编 ...

  4. Pycharm自动部署项目

    Pycharm自动部署项目 大家好呀,又有几天不见各位了.断更了几天,给大家说声抱歉.清明节大家都挺忙的,有扫墓祭祖的,也有趁小长假去游玩的. 所以,在节后,更新也会照常进行,继续给大家分享本人的一些 ...

  5. jenkins maven git windows code 自动部署

    本人刚刚接触  写的不好就对付看看吧 哈哈哈O(∩_∩)O哈哈~ 最近看见别人弄得自动部署 自己也是手痒痒 也想弄一个 所以就弄了一个 windows的 我用的是https的  在网上看了很多都是 s ...

  6. 【问题管理】-- Tomcat8部署项目加载静态资源html页面编码错误

    1.问题背景及解决方式 最近在回顾Tomcat部署Web项目,自己简单地从Tomcat的下载安装及配置server.xml文件入手,学习Tomcat的项目部署,在自己使用IDEA创建了一个简单地web ...

  7. CentOS配置git和maven自动部署java

    #安装Git yum install git #测试是否成功 git -version #正确 #git version 1.7.1 #配置git config --global user.name ...

  8. 使用git管理github上的项目

    使用git可以把我们的项目代码上传到github上面去,方便自己管理,如何使用git?觉得是每位程序猿所必需要有的谋生技能,所以在此记录一下自己学会使用的这个过程: 一.需要注册github账号,这样 ...

  9. 搭建subversion 服务器,并自动部署项目

    1 subversion目录文件说明: *dav目录:是提供apache与mod_dav_svn使用的目录,让他们存储内部数据*db目录:就是所有版本控制的数据存放文件*hooks目录:放置hook脚 ...

随机推荐

  1. python基础篇----字符串unicode

    python中处理中文常要用到unicode,因为较容易遇到字符串编码的问题,我一般都是将字符串统一转成unicode去处理 python中定义一个unicode字符串,可以在字符串前面加u: str ...

  2. 移动web app开发必备 - 异步队列 Deferred

    背景 移动web app开发,异步代码是时常的事,比如有常见的异步操作: Ajax(XMLHttpRequest) Image Tag,Script Tag,iframe(原理类似) setTimeo ...

  3. 【CSS3】 CSS3:弹性盒子(Flex Box)

    Flex布局是什么 如何指定一个容器为Flex布局 Flex的基本语法 display flex-direction justify-content align-items flew-wrap ali ...

  4. 【2016-09-16】UbuntuServer14.04或更高版本安装问题记录

    出于项目需要,我们的Qt程序需要运行在 1. Windows/Linux-X86平台(CPU为常见的桌面级CPU如G3220.I3等): 2. Windows/Linux-X86低功耗平台(CPU为I ...

  5. 系统UITabBar属性设置

    设置背景: [_tabBar setBackgroundImage:[UIImage imageNamed:@"bg_tabbar"]]; 设置某个Item选中的效果: _tabB ...

  6. Moment.js学习(一)源代码

    本篇主要是学习Moment.js.类库源代码如下: 2.4版本. //! moment.js //! version : 2.4.0 //! authors : Tim Wood, Iskren Ch ...

  7. 配置IIS服务器,.apk文件下载

    iis中支持下载apk文件, 发布的网站上右键->属性->HTTP头->下方有个按钮叫[MIME类型]->添加:两个栏, 扩展名填写: .apk MIME类型填写: 扩展名为 ...

  8. oracle创建表空间,用户,授权等

    #oracle数据库安装完成后,有两个系统级的用户system 默认密码为 :managersys 默认密码为 :change_on_install #创建表空间tbs_xxxdba,初始大小1G,每 ...

  9. VLD 1.0 ReadMe翻译尝试

    近期想学习下VLD的实现,打算从最简单的V1.0版本看起.以下是V1.0版本自己尝试翻译下,最新的2.x版本似乎强大了很多. 简介 Visual C++提供了内置的内存检测机制,但其充其量只满足了最小 ...

  10. JAVA课程设计--简易计算器(201521123022 黄俊麟)

    1.团队课程设计博客链接 http://www.cnblogs.com/I-love-java/p/7058752.html 2.个人负责模板或任务说明 1.初始化业务逻辑. 2.开方.正负.清零.退 ...