项目代码部署到gitee 代码自动发布 以及分支管理策略

文章详细介绍了如何使用Gitee进行代码部署,包括创建账户、仓库,设置ssh公钥以实现无密码克隆,以及在服务器上为特定用户(如www)生成公钥。此外,还展示了通过PHP接口实现代码自动发布的例子,包括验证密码、检查分支和执行git命令更新代码。文章强调了master分支的管理策略,限制写权限,并提倡使用其他分支进行开发和测试。
摘要由CSDN通过智能技术生成

(代码部署步骤)
1.创建gitee账户 (公司邮箱)

2.创建新的仓库

3.(1)用ssh协议的话 把自己电脑上的公钥生成 并上传到gitee就可以直接clone
(2) 用https协议的话 输入账号密码就可以了 如果想要输入一就记住的话 先可以执行
git config --global credential.helper store 命令 这样会在家目录中生成一个文件
.git-credentials 里面记录了 账号和密码 我的mac并没有这个 但是一次输入也能常用
clone 注意事项 sudo -u www git clone https://gitee.com/ www用户克隆

4.在服务器部署代码 与第三部基本一样 唯一不同的是 启动php的进程的用户是哪个 你就用哪个用户生成git 公钥 比如宝塔上的文件属主是 www 用户 那么你要 sudo -u www ssh-keygen -t rsa -C “XXXX@163.com” 并且把公钥部署到项目里面 部署公钥允许以只读的方式访问仓库,主要用于仓库在生产服务器的部署上,免去HTTP方式每次操作都要输入密码和普通SSH方式担心不小心修改仓库代码的麻烦。

部署公钥配置后的机器,只支持clone与pull等只读操作。如果您想要对仓库进行写操作,请 添加个人公钥

5.代码自动发布 写在代码接口上 php示例
d a t a = r e q u e s t ( ) − > p o s t ( ) ; i f ( data = request()->post(); if( data=request()>post();if(data[‘password’] != ‘密码’){
exit(‘密码错误’);
}
//sss
//Log::channel(‘gitlog’)->info(json_encode($data, JSON_UNESCAPED_UNICODE));
$name = d a t a [ ′ r e p o s i t o r y ′ ] [ ′ n a m e ′ ] ; i f ( ! i n a r r a y ( data['repository']['name']; if(!in_array( data[repository][name];if(!inarray(name, [‘shop’,‘git_study’,‘admin’,‘web’,‘’])){
exit(‘fail:’.$name);
}
//网站目录
w w w f i l e = ′ / w w w / w w w r o o t / ′ . www_file = '/www/wwwroot/'. wwwfile=/www/wwwroot/.name.‘/’;
//若是主分支且提交数大于0
if ($data[‘ref’]==‘refs/heads/master’ && $data[‘total_commits_count’]>0) {
$cmd = “cd $www_file && git fetch --all && git reset --hard origin/master && git pull origin master 2>&1”;
r e s = s h e l l e x e c ( res = shell_exec( res=shellexec(cmd);//以www用户运行1
$res_log = ‘-------------------------’.PHP_EOL;
$res_log .= $data[‘user_name’] . ’ 在’ . date(‘Y-m-d H:i:s’) . ‘向’ . $data[‘repository’][‘name’] . ‘项目的’ . $data[‘ref’] . ‘分支push了’ . $data[‘total_commits_count’] . ‘个commit:’ . PHP_EOL;
$res_log .= r e s . P H P E O L ; L o g : : c h a n n e l ( ′ g i t l o g ′ ) − > i n f o ( res.PHP_EOL; Log::channel('gitlog')->info( res.PHPEOL;Log::channel(gitlog)>info(res_log);
exit($res_log);
}

6.分支管理策略
master 分支 只能管理员写操作 其他人只能pull clone
test 分支 测试环境 每个人都可以读写操作 并且代码会在推送的时候自动发版
2021_task_name 分支 任务分支 每个人都在此分支上开发 开发完成后 把master分支合并到此分支测试 然后再在test分支上去测试 最后等管理员发版 master
my_分支 自己的分支 如果 2021_task_name分支冲突了 需要reset的时候 那么个人分支的内容就得以保存

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值