git hook裸仓库自动部署

1.在服务器上创建裸仓库

git init --bare

2.git裸仓库钩子在hooks/中
进入hooks中

$ cd git/hooks
$ touch post-receive && vim post-receive

在 post-receive文件中添加一下内容:

#!/bin/sh
DEPLOY_PATH=/home/wwwroot/default/myproject/  #这个路径是服务器上项目的目录位置
unset  GIT_DIR #这条命令很重要
cd $DEPLOY_PATH
git reset --hard
git pull
chown root:root -R $DEPLOY_PATH

保存文件并修改权限:

chmod +x post-receive

3.服务器上的项目目录克隆git上的项目地址(用ssh地址,需要把服务器的上公钥添加到git上)

4.在自己的电脑上,生成公钥,在服务器的~/.ssh/authorized_keys 的文件中添加上你本地电脑的公钥
5.在本地的仓库中使用命令:

git remote add server ssh://[email protected]<服务器ip地址>/<服务器git目录地址>

6.在本地修改好代码后,提交到远端,git push到master
7.执行git push server 远端自动拉取代码

原文地址:https://blog.51cto.com/itafei/2479541

时间: 2024-10-17 18:37:24

git hook裸仓库自动部署的相关文章

初始化git库并配置自动部署

1.初始化库 git init --bare wap.git 2.配置wap.git/config文件 [core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true ignorecase = true precomposeunicode = true worktree = /data1/project/admin [receive] denycurrentbranch = ignor

Git详解之服务部署

前言 到目前为止,你应该已经学会了使用 Git 来完成日常工作.然而,如果想与他人合作,还需要一个远程的 Git 仓库.尽管技术上可以从个人的仓库里推送和拉取修改内容,但我们不鼓励这样做,因为一不留心就很容易弄混其他人的进度.另外,你也一定希望合作者们即使在 自己不开机的时候也能从仓库获取数据 — 拥有一个更稳定的公共仓库十分有用.因此,更好的合作方式是建立一个大家都可以访问的共享仓库,从那里推送和拉取数据.我们将把这个仓库称为 “Git 服务器”:代理一个 Git 仓库只需要花费很少的资源,几

使用 Git Hook 实现网站的自动部署

自动化能解放人类的双手,而且更重要的是,因为按照规定的流程来走,也减少了很多误操作的产生.不知道大家平时都是怎么样更新自己生产环境的代码的,FTP 覆盖旧文件.服务器定时任务去 build 最新的源码,还是有更高级的做法? 目前我在使用 Git Hook 来部署自己的项目.Git Hook 是 Git 提供的一个钩子,能被特定的事件触发后调用.其实,更通俗的讲,当你设置了 Git Hook 后,只要你的远程仓库收到一次 push 之后,Git Hook 就能帮你执行一次 bash 脚本. 下面是

git hook 自动部署

1. 当前虚拟站点根目录的 .git/ 权限 2. 当前项目裸仓库创建 hooks/post-receive 文件,并给予x 的权限 3. 复制如下内容 #!/bin/sh unset $(git rev-parse --local-env-vars) REPO="[email protected]:edc2.git" #BRANCH=`echo $refname | sed -n 's/^refs\/heads\///p'` #BRANCH_DIR="/root"

做了一个简易的git 代码自动部署脚本

项目是THINKPHP写的 用了 oschina git 进行版本管理. 公网服务器是CentOS.每次用FTP上传很麻烦. 所以想到了在服务器上安装一个GIT进行 pull代码.因为我的远程服务器数据库和本地不一样,所以代码pull后还需要修改 几个config.php数据库配置文件. 所以想再git 代码更新后,要自动执行config.php文件的替换或者修改. 其中看到这里讨论http://www.v2ex.com/t/81173  git hook 然后看了下比较麻烦.也看不懂. 所以就

git管理和自动部署项目

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

【Webhooks】使用Git的Webhooks进行服务器自动部署代码

使用Git的Webhooks进行服务器自动部署代码 本文项目地址 https://github.com/diandianxiyu/PageBlog/blob/master/%E4%BD%BF%E7%94%A8Git%E7%9A%84Webhooks%E8%BF%9B%E8%A1%8C%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%87%AA%E5%8A%A8%E9%83%A8%E7%BD%B2%E4%BB%A3%E7%A0%81.md 如有错误,请指正~ 前言 之前一直想做自动化运

GIT服务器实现web代码自动部署

个人原创,版权所有,转载请注明出处,并保留原文链接: http://www.embbnux.com/2014/09/05/git_server_let_code_auto_deploy/ 订阅BLOG:Blog of Embbnux   文章浏览量:4,209 views 之前在一台vps服务器上面搭建了git服务器,用来做代码管理,方便团队开发.但是问题也就相应的来了,使用git可以轻松的上传代码,而由于做的是web开发,每次还都得到服务器上把代码手动pull或者复制到网页所在的文件夹下,也就

Git自动部署

Git自动部署文件位于repository下面的hooks里的post-receive #!/bin/sh set -e git-update-server-info gitosis-run-hook update-mirrors # Check the remote git repository whetherit is bare IS_BARE=$(git rev-parse--is-bare-repository) if [ -z "$IS_BARE" ]; then echo&