利用git pull的勾子实现敏捷部署】的更多相关文章

监听端 例如nginx或Python,php,rails等后端 git --git-dir=~/op/.git --work-tree=~/op pull git hooks端 位于.git/hooks/post-merge, 表示发生merge(包含git pull)后的操作 #! /bin/bash sudo /usr/local/openresty/nginx/sbin/nginx -p /home/ubuntu/op -c /home/ubuntu/op/conf/devu -s rel…
目标:服务器上搭建Laravel环境,本地使用IDE进行开发,使用Homestead做本地调试环境,代码提交后自动部署到服务器Root目录下. 下面是整个流程的示意图:  1. 准备工作,搭建LNMP环境 搭建一个Linux服务器,安装好nginx.MySQL.PHP 因为要用到Laravel 5.4,对安装的php有以下要求 PHP >= 5.6.4 OpenSSL PHP Extension PDO PHP Extension Mbstring PHP Extension Tokenizer…
之前遇到问题 在服务器拉取一直不成功, php 的shell函数 调用 git pull 一直不成功 ,但是单独 用root 权限 在机器上面 执行 git pull 是可以的 说明语法没问题. 而 php 调用的shell的权限 其实是用户 www 说明 www的权限不成功表示用户www 没权限 所以需要对www配置权限 1首先 在 /etc/passwd 中给 www 设置主页目录  /home/uwww 2 让其荣有登录权限可执行shell,,  home/uwww /bin/bash 3…
前言: 这里简单介绍一下Git的历史. 同生活中的许多伟大事件一样,Git 诞生于一个极富纷争大举创新的年代.Linux 内核开源项目有着为数众广的参与者.绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上(1991-2002年间).到 2002 年,整个项目组开始启用分布式版本控制系统 BitKeeper 来管理和维护代码. 到了 2005 年,开发 BitKeeper 的商业公司同 Linux 内核开源社区的合作关系结束,他们收回了免费使用 BitKeeper 的权力…
利用git+hugo+markdown 搭建一个静态网站 一直想要有一个自己的文档管理系统: 可以很方便书写,而且相应的文档很容易被分享 很方便的存储.管理.历史记录 比较方面的浏览和查询 第一点用Makrdown来写文档是一个非常好的选择,第二点自然想到了git, 第三点用一个静态的网站来浏览和管理是一个不错的选择,这里选择了hugo. Hugo是由Go语言实现的静态网站生成器. 注意是生成器.他虽然自带webserver,但是没有Nigix强大了. 他能非常方便的把markdown文件转换为…
转自:http://www.cnblogs.com/ToDoToTry/p/4095626.html 真正理解 git fetch, git pull 要讲清楚git fetch,git pull,必须要附加讲清楚git remote,git merge .远程repo, branch . commit-id 以及 FETCH_HEAD. 1. [git remote]首先, git是一个分布式的结构,这意味着本地和远程是一个相对的名称. 本地的repo仓库要与远程的repo配合完成版本对应必须…
前言    持续集成这个概念已经成为软件开发的主流,可以更频繁的进行测试,尽早发现问题并提示.自动化部署就更不用说了,可以加快部署速度,并可以有效减少人为操作的失误.之前一直没有把这个做起来,最近的新项目正好有机会,费了一番功夫总算搞好了,特此记录. 1. 开发环境    我这边建立的标准开发环境如下:    1. Maven做项目管理:    2. Git做代码管理:    3. SpringMVC+Spring+Mybatis搭建的程序框架:    4. Mysql作为数据存储,Druid做…
http://www.tuicool.com/articles/3QRB7jU 自动化能解放人类的双手,而且更重要的是,因为按照规定的流程来走,也减少了很多误操作的产生.不知道大家平时都是怎么样更新自己生产环境的代码的,FTP 覆盖旧文件.服务器定时任务去 build 最新的源码,还是有更高级的做法? 目前我在使用 Git Hook 来部署自己的项目.Git Hook 是 Git 提供的一个钩子,能被特定的事件触发后调用.其实,更通俗的讲,当你设置了 Git Hook 后,只要你的远程仓库收到一…
注意:服务器:Ubuntu Server 14.04,我的项目比较小,所有操作都使用root,建议最好新建一个用户(需要有管理员权限,否则在后面使用hooks自动部署代码时会出现各种权限问题,很蛋疼的). 一.搭建GIT服务器 1. 安装GIT 1.1 安装前最好先更新apt-get,同时需要事先安装好openssh,对应的两条命令如下: apt-get update apt-get install openssh 1.2 通过apt-get安装git apt-get install git 2…
今天用git pull来更新代码,遇到了下面的问题: error: Your local changes to the following files would be overwritten by merge: xxx/xxx/xxx.java Please, commit your changes or stash them before you can merge. Aborting 提示已经很友好了,从网友处得到的答案直接帮我解决问题. 1.stash 通常遇到这个问题,你可以直接com…
真正理解 git fetch, git pull 要讲清楚git fetch,git pull,必须要附加讲清楚git remote,git merge .远程repo, branch . commit-id 以及 FETCH_HEAD. 1. [git remote]首先, git是一个分布式的结构,这意味着本地和远程是一个相对的名称. 本地的repo仓库要与远程的repo配合完成版本对应必须要有 git remote子命令,通过git remote add来添加当前本地长度的远程repo,…
Your local changes to the following files would be overwritten by mergeerror: Your local changes to the following files would be overwritten by merge: protected/config/main.phpPlease, commit your changes or stash them before you can merge. 参考http://b…
Linux 下建立 Git 与 GitHub 的连接 Git 是一款开源的分布式版本控制系统,而 GitHub 是依托 Git 的代码托管平台. GitHub 利用 Git 极其强大的克隆和分支功能,使得社区成员能够自由地参与到开源项目中去. 不过,在开始学习之前,你需要一个 GitHub 账号,以及一台能联网的 Linux 虚拟机. ====准备工作====安装 GitUbuntu 安装 Git: apt-get install git CentOS 安装 Git: yum install g…
http://www.tuicool.com/articles/fqm2Qf   推酷 文章 微博 主题 站点 活动 应用 周刊 登录   Eclipse导入git上的maven web项目 部署 - lpshou 时间 2013-07-18 20:37:00  博客园-所有随笔区原文  http://www.cnblogs.com/lpshou/p/3199243.html 1 Eclipse中导入Git的maven项目 (1)首先当然是拉代码. 在Eclipse里面有个Git Reposit…
之前在一台vps服务器上面搭建了Git服务器,用来做代码管理,方便团队开发.但是问题也就相应的来了,使用git可以轻松的上传代码,而由于做的是web开发,每次还都得到服务器上把代码手动pull或者复制到网页所在的文件夹下,也就比较麻烦,不适合我这种懒人.git提供了hook机制,可以很容易的实现代码的自动部署. 个人原创,版权所有,转载请注明原文出处: http://www.embbnux.com/2014/09/05/git_server_let_code_auto_deploy/ 一 git…
真正理解 git fetch, git pull 要讲清楚git fetch,git pull,必须要附加讲清楚git remote,git merge .远程repo, branch . commit-id 以及 FETCH_HEAD. 1. [git remote]首先, git是一个分布式的结构,这意味着本地和远程是一个相对的名称. 本地的repo仓库要与远程的repo配合完成版本对应必须要有 git remote子命令,通过git remote add来添加当前本地长度的远程repo,…
要讲清楚git fetch,git pull,必须要附加讲清楚git remote,git merge .远程repo, branch . commit-id 以及 FETCH_HEAD. 1. [git remote]首先, git是一个分布式的结构,这意味着本地和远程是一个相对的名称. 本地的repo仓库要与远程的repo配合完成版本对应必须要有 git remote子命令,通过git remote add来添加当前本地长度的远程repo, 有了这个动作本地的repo就知道了当遇到git p…
前言 2018年第一篇文章,没啥技术含量,权当笔记 我们一般都会用git或者svn来管理我们的代码 每次代码更新后还要手动的去把服务器上的代码也更新一遍 项目小了还好 项目大了着实浪费时间 要是服务器上的代码也能像git那样增量更新就好了 今天就说说如何通过webhook的形式来让服务器自动拉取我们push的代码 原理 现在的Git服务器一般都会有个webhook服务 什么意思呢? 就是我们在执行了push.merge等一系列的操作的时候 Git服务器会发送一个请求到我们指定的URL 并且会把此…
http://blog.csdn.net/sidely/article/details/40143441 原文: http://www.tech126.com/git-fetch-pull/ Git中从远程的分支获取最新的版本到本地有这样2个命令:1. git fetch:相当于是从远程获取最新版本到本地,不会自动merge git fetch origin mastergit log -p master..origin/mastergit merge origin/master 以上命令的含义…
团队协作开发中,大部分都会用到版本控制软件,比如Git.Svn等.本文将通过一个实例,详细讲解在真实的工作环境中,一个团队应该如何利用Git+Github进行协作开发,即详解Git工作流程.并就其中比较棘手的问题作出解答,比如如何解决冲突比较合适,如何建立各种类型的分支等. 本文不会讲解Git简介.Git原理.Git基本用法等,有不了解的可以参考“ Git 参考手册 ”.我们举例演示的是GitFlow工作流的功能,这里先放一张经典的GitFlow工作流图示: 其中涉及到的主要分支类型有: mas…
转自http://www.cnblogs.com/ToDoToTry/p/4095626.html 真正理解 git fetch, git pull 要讲清楚git fetch,git pull,必须要附加讲清楚git remote,git merge .远程repo, branch . commit-id 以及 FETCH_HEAD. 1. [git remote]首先, git是一个分布式的结构,这意味着本地和远程是一个相对的名称. 本地的repo仓库要与远程的repo配合完成版本对应必须要…
前言 持续集成这个概念已经成为软件开发的主流,可以更频繁的进行测试,尽早发现问题并提示.自动化部署就更不用说了,可以加快部署速度,并可以有效减少人为操作的失误.之前一直没有把这个做起来,最近的新项目正好有机会,费了一番功夫总算搞好了,特此记录. 1. 开发环境 我这边建立的标准开发环境如下: 1. Maven做项目管理: 2. Git做代码管理: 3. SpringMVC+Spring+Mybatis搭建的程序框架: 4. Mysql作为数据存储,Druid做连接池: 5. unitils作为测…
今天学习如何利用git从本地端上传项目,以及遇到问题的解决方法 1.要有自己的github账号,并创建一个仓库, 2.输入仓库的名称,直接Create 注:记住常见成功后的这个地址,后边要用到: 3.在本地电脑上安装git客户端:下载网址如下: https://git-scm.com/downloads 然后一路next即可安装成功. 安装成功后弹出窗口如下: 此时输入命令进入项目的所在目录(其中的命令是和linux中的命令基本一样的) 进行初始化::git init 选择上传的文件: git…
Visual Studio C# 利用git和Github协同开发时产生冲突的解决办法 前言:在前两天的助教作业中,发现了自己没有办法解决在用vs开发C#的窗体项目的过程中产生的冲突问题,在查阅了资料,询问了一些人以后,总结一下,不知道是否完全正确,但基本上可以解决大部分冲突. 过程使用工具列表: git github Visual Studio TortoiseGit 3. 其中TortoiseGit只是辅助工具,在本次博客中描述的所有利用TortoiseGit进行的操作都可以使用git进行相…
服务器上必须安装了git maven jdk 并且配置好环境变量 实际服务器中可能运行着多个Java进程,所以重新部署的时候需要先停止原来的java进程,写一个按照名称杀死进程的脚本 kill.sh #!/bin/sh function PidFind()   {   PIDCOUNT=`ps -ef | grep $1 | grep -v "grep" | grep -v $0 | awk '{print $2}' | wc -l`;   if [ ${PIDCOUNT} -gt 1…
在使用Git的过程中,有些时候我们只想要git服务器中的最新版本的项目,对于本地的项目中修改不做任何理会,就需要用到Git pull的强制覆盖,具体代码如下: $ git fetch --all $ git reset --hard origin/master $ git pull 注意:第二条中最后的分支master,如果是在分支开发的话,就写某个分支的名字. Git pull的强制覆盖本地文件在自动化部署项目中很有作用,比如用SaltStack部署web项目,强制覆盖可以保持与服务器内容一致…
目标 项目没有使用Jenkins部署,使用的是Gitlab+ECS,要实现代码的自动部署 想法 使用Gitlab的钩子,当某个分支的代码提交之后,访问一个URL,实现代码的自动部署.这里使用PHP的exec方法,执行“git pull”操作 Tips:这种方法不是百分百靠谱,万一代码冲突就...... 实现 目的:访问 http://xxx.com/index.php?project=hello,程序会自动在hello这个文件下,运行“git pull”命令 1.前提条件:linux上安装好gi…
公司的git开发模式是“主干发布,分支开发”,大多数情况下是多个开发在同一dev分支上进行开发,因此需要经常pull代码,如果本地工作区存在代码修改,那么pull肯定失败,提示需要先commit已修改的部分, 如下 error: Your local changes to the following files would be overwritten by merge: xxx/xxx/xxx.php Please, commit your changes or stash them befo…
今天在使用git pull 命令的时候发生了以下报错 目前git的报错提示已经相关友好了,可以直观的发现,这里可以通过commit的方式解决这个冲突问题,但还是想看看其他大佬是怎么解决这类问题的 在网上查了资料和其他大佬的博客,得到了两种解决方法: 方法一.stash git stash git commit git stash pop 接下来diff一下此文件看看自动合并的情况,并作出相应修改. git stash: 备份当前的工作区的内容,从最近的一次提交中读取相关内容,让工作区保证和上次提…
简介 不知道大家一开始是怎么使用 git 进行开发的,反正我个人是先将代码提交到 github 仓库,然后用 SSH 登录到服务器,然后进行克隆或者版本更新.听起来就很麻烦,当然实际操作中也很麻烦,那么有什么可以 “一劳永逸 “ 的办法呢?请往下看! 简单使用 Git 钩子 什么是 git 钩子呢?官方解释有些长,简单来说就是一个在特定环境下触发的脚本.这个解释可能不太准确,但是我认为这样更容易理解一些,想了解更多的,可以去 Git 官网查看,下面我们就用钩子实现自动化部署. 第一步:创建 gi…