git 使用钩子直接推送到工作目录
远端机器
$ mkdir /www/teacherapi # 创建工作目录
$ cd /data/git
$ git init teacherapi.git --bare --shared
Initialized empty shared Git repository in /data/git/teacherapi.git/
$ cd teacherapi.git/
$ vi hooks/post-receive # 或者使用 $ cat > hooks/post-receive 创建并键入如下代码,最后ctrl+d保存退出,
#!/bin/sh
GIT_WORK_TREE=/www/teacherapi git checkout -f <branch> # 默认master分支
$ chmod +x hooks/post-receive # 设置可执行权限
也可以用下面代码片段
$ cd git
$ mkdir somesite.git
$ cd somesite.git/
$ git init --bare
Initialized empty Git repository in /home/caius/git/somesite.git/
$ git --bare update-server-info
$ git config core.worktree /home/caius/vhosts/somesite.com/htdocs
$ git config core.bare false
$ git config receive.denycurrentbranch ignore
$ cat > hooks/post-receive
#!/bin/sh
git checkout -f
^D
$ chmod +x hooks/post-receive
工作树更新完成后执行脚本
$ cd /gitpah/hooks/
$ vi post-checkout #创建post-checkout键入如下代码,当'git-checkout'命令更新完整个工作树(worktree)后,这个钩子就会被调用
#!/bin/sh
/etc/init.d/teacherapitest.tbkt.cn restart
$ chmod +x post-checkout
本地机器
$ git clone ssh://root@192.168.0.106:6022/data/git/teacherapi.git
$ cd teacherapi/
$ echo 'Hello, world!' > index.html
$ git add index.html
$ git commit -m "init project"
$ git push origin master:master
添加远程仓库
$ git remote add 106 ssh://root@192.168.0.106:6022/opt/gitdata/chsy_cms.git
远程推送过程中报错:cannot run hooks/post-receive: No such file or directory
除了检查post-receive文件内容外,还要看看文件格式对不对,使用$ cat -A hook/post-receive 查看
文档内容参考:
http://caiustheory.com/automatically-deploying-website-from-remote-git-repository
http://toroid.org/ams/git-website-howto
更多钩子用法:http://www.360doc.com/content/12/1012/11/10140166_241004726.shtml
git 使用钩子直接推送到工作目录的更多相关文章
- 解决git rebase操作后推送远端分支不成功的问题
转:解决git rebase操作后推送远端分支不成功的问题 前段时间在工作中同事在rebase时遇到一个问题来问我,今天突然想起来觉得有必要记录一下. 在我们日常工作中,经常使用git座位代码管理工具 ...
- Git:多人推送/抓取分支事项
1.推送分支 1.1使用命令符git push origin branch-name,推送自己已修改的分支 例如git push origin master,git push origin dev. ...
- Git如何把本地代码推送到远程仓库
Git如何把本地代码推送到远程仓库 1. 初始化版本库 $ git init 2. 添加文件到版本库(只是添加到缓存区),.代表添加文件夹下所有文件 $ git add . 3. 把添加的文件提交到版 ...
- 【Git使用】强制推送代码到多个远程仓库
只吃了一个香蕉的晚上 一直预报的台风没有来,大盘也飘红了,世界好像变得越来越美好了似的.前两天,晚上下班坐地铁回家,靠在地铁门上看书,竟然坐到了终点站已全然不知,我也不知道我怎么了.怎么了.怎么了!最 ...
- Git基本命令 -- 别名 + 忽略 + 推送
别名. 我可以使用这个命令查看repository的历史 git log --all --graph --decorate --oneline: 这个命令可能比较常用, 但是又比较长. 这时我可以创建 ...
- git将本地仓库推送到远程仓库
如何将本地仓库推送到公司远程仓库? 1:前提是你本地安装好git.先把远程git仓库克隆到本地 git clone 远程仓库的地址(SSH) 2: git branch //查看本地分支 3: g ...
- git 打标签并推送tag到托管服务器
我们常常在代码封板时,使用git 创建一个tag ,这样一个不可修改的历史代码版本就像被我们封存起来一样,不论是运维发布拉取,或者以后的代码版本管理,都是十分方便的. 首先我们了解下 git 的 ta ...
- 用Git将本地项目推送到github
[博客园cnblogs笔者m-yb原创,转载请加本文博客链接,笔者github: https://github.com/mayangbo666,公众号aandb7,QQ群927113708] http ...
- 解决git commit 大文件推送失败
//查找大文件 git verify-pack -v .git/objects/pack/pack-*.idx | sort -k 3 -g | tail -5 //根据上面查找到的hash值,筛选文 ...
随机推荐
- 安装phpredis模块
[root@web01 src]# wget github.com/owlient/phpredis/tarball/master [root@web01 src]# tar -xzvf master ...
- java基础知识回顾之java Thread类学习(十一)--join方法的理解
以下面例子说明下面的源码:main 线程 和 A线程,A线程是main线程创建并且启动的,main线程优先级比较高,正在执行:这个时候main线程调用A.join()之后,main线程一直等待,直到A ...
- js event 事件兼容浏览器 ie不需要 event参数 firefox 需要
js event 事件兼容浏览器 ie不需要 event参数 firefox 需要 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 ...
- poj 1273 最大流入门
明天再拍一遍 #include <iostream> #include <queue> using namespace std; ; const int INF = 0x7FF ...
- Struts2中ActionContext和ServletActionContext
转自:http://blog.sina.com.cn/s/blog_6c9bac050100y9iw.html 在Web应用程序开发中,除了将请求参数自动设置到Action的字段中,我们往往也需要在A ...
- Android APK反编译详解(附图)(转)
这段时间在学Android应用开发,在想既然是用Java开发的应该很好反编译从而得到源代码吧,google了一下,确实很简单,以下是我的实践过程. 在此郑重声明,贴出来的目的不是为了去破解人家的软件, ...
- JSON浅总
我们在以前的学习中了解到XML是一种结构化的数据表示方式,一种可扩展标记语言!可以把XML理解成一个微型的结构化的小的数据库,保存一些小型的数据和传输数据,有严格的显示限制.但是XML语句有些冗长和繁 ...
- 移动端Web开发之我见
Web比App简单? 前两天有人问手机上做网页简单还是做app简单,我真答不上来.很多人会不以为意的说当然是网页简单,但真的是这样吗? 放眼现在上线的手机网页,大多数都是平时pc的技术沿用过来的,鲜有 ...
- CodeForces 505B Mr. Kitayuta's Colorful Graph
Mr. Kitayuta's Colorful Graph Time Limit:1000MS Memory Limit:262144KB 64bit IO Format:%I64d ...
- Android 编程下如何修改 jar 文件的包名
首先我们要说说为什么要修改 jar 文件的包名,jar 包我们会非常高频率的使用,尤其是用一些其他三方库的时候,往往把 java 代码打包成 jar 文件,方便项目依赖使用.笔者在开发过程中遇到过一些 ...