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://[email protected]: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://[email protected]: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

时间: 2024-11-10 11:54:17

git 使用钩子直接推送到工作目录的相关文章

批处理脚本,git本地workspace一键推送到远端repo

1 @echo off 2 setlocal enabledelayedexpansion 3 git status||goto :eof 4 5 set "msg=quick push. %date% %time%" 6 if #%1==# (set /p "msg=commit message?"&pause&set "msg=!msg! %date% %time%") 7 8 if not #%1==# set "

git新建分支并推送至远程仓库库

git新建分支并推送至远程仓库库 新建分支 git branch bra_name 切换分支 git checkout bra_name 推送 git push -u origin bra_name (之前得用git status确认是否为可以提交状态) END 原文地址:https://www.cnblogs.com/famine/p/10036103.html

Bat 创建git分支tag并推送

方便版本更新以后,给各个项目打tag并推送.设置分支.标签信息以后,可多次调用函数,给多个项目打标签. 函数名:createtag 参数 说明 参数1 仓库地址 参数2 分支.标签建在那个分支 参数3 tag名.标签名字 参数4 备注.标签的备注 @echo off @title 新建标签 ::set /p branchName=请输入分支名称: ::echo %description% REM set /p branchName=r4.2 REM set /p tagName=请输入标签名称:

在IDEA中如何初始化Git,把项目推送到Git上

在IDEA中如何初始化Git,把项目推送到Git上 登录Gitee(码云)账号,新建仓库 先按如下步骤简单新建一个仓库: 创建成功后,会出现下图中所示的原始文件: 在IDEA上的Terminal中进行操作 注意: 可能有些朋友刚打开Terminal的时候,会出现一些问题,比如不出现弹框等等 这个问题我也遇到过,如果你也遇到了,莫慌,对照下图中的内容修改即可 在Terminal中输入Git命令 touch README.md touch .gitignore 复制代码 依次输入两个命令,在项目中创

Git从创建到推送到远程版本库

1.创建一个新的文件夹,并进入到该文件夹里,使用命令:git init来创建新的git仓库: 2.获取钩子(每次git init之后都要一次): [[email protected] activity.mycihi.cn]# scp -p -P 8849 [email protected]:hooks/commit-msg .git/hooks/Enter passphrase for key '/root/.ssh/id_rsa':commit-msg 100% 4365 4.3KB/s 00

使用git进行代码的推送

首先是对于锐捷墙的问题,登陆github有时可以有时又连不上,网络又非常慢,所以用了十足的耐心才fork完了代码库.链接https://github.com/niconiconiconi/helloworld 1.之后是下载并安装git,安装完成之后直接选择一个位置作为自己的本地仓库.右键打开git bash并初始化本地仓库. 2.网上搜索了git的各种命令 诸如git add xxx 将文件xxx添加到缓存区git commit -m"注释" 提交文件并作出注释git remote

通过git将本地项目推送至码云

1.安装git并进行基础配置 1.2安装 略 1.3基础配置 1)配置用户名,提交的时候会引用 git config --global user.name "liyufei" 2)配置邮箱(提交时会引用) git config --global user.email "[email protected]" 3)让git不要管Windows/Unix换行符转换的事 git config --global core.autocrlf false 4)编码配置 #避免gi

如何使用git命令把代码推送到github

Git是一个开源的分布式版本控制系统,可以高效.高速的管控项目.网上很多的文章知识点比较零散,很多冗余,在此给大家整理了一个简洁版的,可按照步骤操作的笔记供大家参考.如果在实践过程中遇到问题,可以加我本人的QQ:1416759661,共同探讨.旺旺: QQ: 第一步:在github.com上面注册账号.建立一个远程仓库,远程取名 canvas. 第二步:下载git工具,并安装git工具,所有步骤均默认就可以.git下载地址:https://git-scm.com/downloads 第三步:在D

Cygwin中使用git时无法远程推送(出现DLL文件不兼容)

Cygwin中使用Git远程推送出现DLL文件不兼容 之前在Window和Linux时使用git远程推送都没有什么问题,今天在Win7中试了下Cygwin的git push是却出现如下提示: 说是不兼容的cygwin DLL文件引起段错误. 网上试了好几个办法都不行,最后突然想到GitHub分布式主要是通过公钥和私钥的原理来实现的. 因为在Win7上已经安装了Git, 也就是说私钥已经有了.于是直接把Win7上.ssh下面的文件拷贝到Cywgin home路径下的.ssh路径,发现居然可以了.