每次将更新发送到我们的远程存储库时,我正在执行一个程序来提醒CruiseControl.我正在使用Git post-update钩子.
如果我能找到已经提交的分支,那将是很好的,所以我可以使用它来通知CruiseControl要构建哪个分支.有没有办法在更新后的钩子中访问分支名称?
是否可以使用git bash设置分支权限?我想对主分支更严格的权限,使一些人可以使用开发分支并承诺,并不得改变主分支自己.
如果有可能我该怎么做?
我正在努力进一步使用git,我认为钩子是我想要的方式,也许有人可以在这里给我一些建议.
我的计划是拥有一个包含3个分支(开发,登台和生产)的git存储库.我希望提交到这3个分支中的每个分支以在提交后触发不同的脚本.
git是否有能力做到这一点,还是我咆哮错误的树?
提前致谢.
我设置了两台服务器(据我所知)完全一样.在其中一个上,使用git一直很好,但是在第二个上,我开始收到这个错误:
致命:远程端意外挂起
错误:边带解复用器出错
两者之间的一切都是相同的,包括.git/hooks/post-receive
文件的内容.
配置中是否有一步我错过了什么地方?我已经尝试过两次重新启动回购,但无济于事.
我的收件后文件如下:
#!/ bin/sh
cd ..
env -i git reset --hard
我已经按照这个优秀的写作http://toroid.org/ams/git-website-howto使用Git的post-hooks策略将代码部署到我的服务器.
我有一个更新后的文件,如下所示:
GIT_WORK_TREE=/home/rajat/webapps/<project name> git checkout -f
Run Code Online (Sandbox Code Playgroud)
每次我将代码推送到master分支时,它都会自动部署.我现在要做的是使这个支持多个分支,以便:
为此,更新后挂钩需要了解哪个分支已更新.这可能吗 ?
最近,我们开始探索GIT的目标是让我们的开发人员能够在任何地方工作,其次是自动化整个部署过程.
我们有一个中央测试服务器,我们托管所有应用程序/站点以进行测试和/或演示目的,一旦开发和测试完成,我们将应用程序移动到各自的实时服务器.
无论我使用GIT设置了什么,如下所示
1.在测试服务器上创建一个裸仓库
2.为每个涉及的开发人员获取本地克隆,开发人员将推送到远程(测试服务器)dev分支
3.有人将合并所有更改来自dev分支到master分支并将其推送到远程
4.测试服务器(裸仓库)有一个post-receive钩子,它将master分支检出到public_html文件夹(使用GIT_WORKING_DIR和checkout -f).
截至目前,一切运行良好,我能够在托管页面上的主分支上看到合并(当然,在测试服务器上).现在我的问题是......
1.我这样做了吗?
2.我想我已经设置了post-receive hook,也可以在push to dev分支上执行.怎么避免这个?
3.我如何将这些内容发送到我的实时服务器?由于我有一些具有大量代码库的项目,检查测试服务器上的所有内容然后将其发送到现场看起来不够好.
我听说过CI服务器,但据我所知,他们在本地检查并使用'rsync' 上传所有内容(不知道它是同步更改还是上传所有内容)或此类工具.如果出现任何问题,我只是想避免一切都出现并保持打开回滚的选项.我很擅长在实时服务器上设置git.
git ×6
githooks ×3
branch ×2
automation ×1
bash ×1
corruption ×1
deployment ×1
operators ×1
php ×1
post-commit ×1
shell ×1