git push后自动部署
前提,服务器已经装好ssh,本地也已经将ssh 公钥传到服务器对应位置
先用 pbcopy < ~/.ssh/PRIVATE_KEY.pub 将公钥复制到剪贴板;通过 ssh USER@SERVER 访问服务器,这时会提示输入密码(它也许只有这么一次「询问」的机会);成功登录后 vim ~/.ssh/authorized_keys,在合适的位置 cmd + V 并保存退出(同时 exit 退出 SSH 连接)。
Host HOST_ALIAS # 用于 SSH 连接的别名,最好与 HostName 保持一致
HostName SERVER_DOMAIN # 服务器的域名或 IP 地址
Port SERVER_PORT # 服务器的端口号,默认为 ,可选
User SERVER_USER # 服务器的用户名
PreferredAuthentications publickey
IdentityFile ~/.ssh/PRIVATE_KEY # 本机上存放的私钥路径
如何公钥名非默认,可打开上面的文件进行配置,在~/.ssh/config中
1 先在远程库 testproject目录(用户访问的那个git库)创建一个并行目录testproject.git(这是个目录,后面的后缀是为了方便认出是一个git库,用于设置hook)
2然后cd testproject.git,git init,初始化这个库,
然后vim .git/config
添加
[receive]
denyCurrentBranch = ignore
这两行,或者git config receive.denyCurrentBranch ignore
这样才可接受本地的push
然后这个git 库的地址就是 root@xxx.xxx.xxx.xxx:/xxx/xxx/testproject.git
中间是服务器的ip,后面是库的路径,注意这里的root是登录的用户,其实可以自己建一个其他的用户,这里root是懒,
建其他用户的方法是 useradd paul
userpwd paul设置密码
然后建立对应的库,并为库设置属主chmod paul:paul testproject.git
然后切换到pual用户,还要为新用户设置.ssh什么的,不然push提交的时候还是得输密码
上面弄好远程库后,再在本地git remote set-url --add origin root@xxx.xxx.xxx.xxx:/xxx/xxx/testproject.git
把这个远程库添加到Orogin名下,
3 在远程库.git/hooks下,cp post-update.sample post-update ,vim post-update
把里面删除
加入
#!/bin/sh
unset GIT_DIR
NowPath=`pwd`
DeployPath="../../testproject"
cd $DeployPath
git pull origin master
cd $NowPath
exit 0
原理不复杂,就是当你Push时,同时向这个远程库push,push完后调用这个hook中的脚本,然后切换到对应目录去pull,完事,当然 也可以在这个hook中加些其他东西,比如python xxx.py什么的,招待一些
脚本,不过好像本地当你提交时,必须要等这个hook中的脚本执行完毕,本地那边 才结束,因为当我运行一个
while True:
print "hello"
时,本地那个会一直出现 hello.
暂时没想到异步运行的方法
git push后自动部署的更多相关文章
- Git hook实现自动部署
Git Hook 是 Git 提供的一个钩子,能被特定的事件触发后调用.其实,更通俗的讲,当你设置了 Git Hook 后,只要你的远程仓库收到一次 push 之后,Git Hook 就能帮你执行一次 ...
- 搭建Git服务器环境----Git hooks代码自动部署
引言:自己想搭一套git的服务端环境,不想用github码云等.经多方资料整合,实验总结,以下是亲测有效的方式.可用于公司日常开发 一.搭建Git环境 ① 安装 Git Linux 做为服务器端系统, ...
- git管理和自动部署项目
当一个项目需要纳入到版本控制的时候,选择的工具还是比较多的,最常见的就是工具有CVS,SVN,GIT等.在平时的开发中视情况而定,从来就没有最好的版本控制工具,只有最适合的工具.在这里我习惯用git来 ...
- jenkins maven git windows code 自动部署
本人刚刚接触 写的不好就对付看看吧 哈哈哈O(∩_∩)O哈哈~ 最近看见别人弄得自动部署 自己也是手痒痒 也想弄一个 所以就弄了一个 windows的 我用的是https的 在网上看了很多都是 s ...
- 用 Git Hooks 进行自动部署
原文发表于 http://ourai.ws/posts/deployment-with-git-hooks/ 昨天开始接手开发公司前端团队的主页,在稍微修改点东西后推送到远程仓库想看下线上结果时发现并 ...
- 宝塔webhook配合码云,本地git push 服务器自动pull
emmmm,这其实是一个很简单的一件事情,但是有很多坑,记录一下 先大概讲一下原理吧,就是每次您 push 代码后,都会给远程 HTTP URL 发送一个 POST 请求 更多说明 » 然后在宝塔这边 ...
- “git push”后返回“Error 403”解决方法
问题描述: 1,mac ox系统,terminal上运行命令git push出现403错误: 2,代码是在别人的github(暂且叫origin branch吧)上克隆的,修改和添加了部分代码后欲提交 ...
- git push后出现错误 ![rejected] master -> master(non-fast-forward) error:failed to push some refs to 'XXX'
本地创建了一个project并在GitHub上创建了一个仓库,想要将本地的仓库链接到远程仓库我用的是如下方法:git init //初始化本地仓库git remote add origin XX ...
- git push后修改错误的commit message
Easiest solution (but please read this whole answer before doing this): git rebase -i <hash-of-co ...
随机推荐
- 【bzoj4952】[Wf2017]Need for Speed 二分
题目描述 已知$\sum\limits_{i=1}^n\frac{d_i}{s_i+c}=t$,求$c$ $(d_i>0,s_i+c>0)$ 输入 第一行包含两个整数n(1≤n≤1000) ...
- Codeforces Round #392(div 2) 758D (贪心)
orz 最近被水题卡+FST,各种掉rating 题目大意 一个数s它是n进制的,但是每一位不是用'A','B'....表示的,而是用10,11等等表示的,将它还原成十进制 这种表示方法显然会产生多解 ...
- BZOJ1004 [HNOI2008]Cards 【burnside定理 + 01背包】
题目链接 BZOJ1004 题解 burnside定理 在\(m\)个置换下本质不同的染色方案数,等于每种置换下不变的方案数的平均数 记\(L\)为本质不同的染色方案数,\(m\)为置换数,\(f(i ...
- Linux系统—— core 文件
Linux core 文件介绍 1. core文件的简单介绍 在一个程序崩溃时,它一般会在指定目录下生成一个core文件.core文件仅仅是一个内存映象(同时加上调试信息),主要是用来调试的. 2. ...
- Tomcat学习笔记(五)
生命周期事件 Catalina包含有很多组件.当Catalina启动时,这些组件也会启动,同样,当Catalina关闭时,这些组件也随之关闭,通过实现org.apache.catalina.Lifec ...
- mysql外网链接
1:设置mysql的配置文件 /etc/mysql/my.cnf 找到 bind-address =127.0.0.1 将其注释掉://作用是使得不再只允许本地访问: 重启mys ...
- delete zone and cfgsave on brocade by CMD
brocade:user> cfgshowDefined configuration: cfg: cfg001 AMS_ESX_HBA1; AMS_ESX_HBA2; HUS_ESX_HBA1; ...
- UVA 10334 Ray Through Glasses
自己手动画了第三项发现f[3]=5;就猜斐波那契了.实际上光线分为两种距离外界有2面玻璃,1面玻璃 其分别时n-1次反射,n-2次反射形成的 故推出斐波那契. 手动一些f1,f2,f3就OK #inc ...
- libv4l 库【转】
转自:http://www.cnblogs.com/emouse/archive/2013/03/05/2944522.html V4L2摸索了两天还是一头雾水,今天调试一个程序发现两个头文件: #i ...
- hdu 5101(思路题)
Select Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Subm ...