一、需求
二、思路
总思路:phpstorm配置SSH连接服务器,phpstorm配置git,服务器配置裸仓库,目标项目中B项目初始化git。
细节流程:phpstorm中B项目(测试版),dev分支编写测试完功能,通过git上传到服务器中的B项目中,同步。然后切换为master分支,合并dev分支,通过git提交上传服务器到A项目(正式版)。
三、实现流程
1、服务器端设置
在服务器上选择一个不同于代码部署目录的位置创建裸仓库(例如:/var/git)。裸仓库没有工作目录,专用于共享和协作。必须是.git结尾的文件--这种暂且称为裸仓库,而项目文件如:product文件夹,里面是项目的代码啥的,暂且称为目标文件。这两个是不一样的。
# 创建目录存放所有git仓库 mkdir /var/git cd /var/git # 为xxx项目创建裸仓库 git init --bare xxx.git
# 编辑xxx.git/hooks/post-receive vi /var/git/xxx.git/hooks/post-receive
#!/bin/sh # xxx为项目文件(目标文件),即git提交要更新到的项目文件夹 # 当在phpstorm用dev分支提交时,更新到Bxxx项目中 # 当用master分支提交时,更新到Axxx项目中 GIT_WORK_TREE=/www/wwwroot/Bxxx git checkout -f dev GIT_WORK_TREE=/www/wwwroot/Axxx git checkout -f master
chmod +x /var/git/xxx.git/hooks/post-receive
ssh-keygen
来生成新的密钥对。当系统提示你输入文件保存路径时,你可以直接按 Enter 使用默认路径(通常是 ~/.ssh/id_rsa),在 Windows 上,这通常在 C:\Users\你的用户名\.ssh\。如果已存在可以,直接用也行。生成两个文件为:id_rsa、id_rsa.pub
在 Linux 系统中,.ssh
目录通常位于用户的主目录下。如果你使用的是 root 用户,.ssh
目录通常会在 /root/.ssh/
。对于普通用户,它位于 /home/用户名/.ssh/
。【一般通过ls命令语句是查看不到,本人是直接在宝塔里直接操作的】
mkdir -p ~/.ssh chmod 700 ~/.ssh
echo your-public-key-string >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys
cat id_rsa.pub | ssh user@hostname "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
ssh user@hostname
Last login: Wed May 8 00:07:07 2024 from 61.146.45.251 Welcome to Alibaba Cloud Elastic Compute Service !
在Phpstorm中【文件--设置】中,搜索ssh,找到SSH配置,点击“+”,如下:
git checkout -b 分支名
#!/bin/sh # xxx为项目文件(目标文件),即git提交要更新到的项目文件夹 # 当在phpstorm用dev分支提交时,更新到Bxxx项目中 # 当用master分支提交时,更新到Axxx项目中 GIT_WORK_TREE=/www/wwwroot/Bxxx git checkout -f dev GIT_WORK_TREE=/www/wwwroot/Axxx git checkout -f master
三、总结
本人同时也配置了Phpstorm通过ssh连接服务器,这样,在测试版项目,编写代码时,可以直接保存就能同步到服务器(当然这个测试项目是自己单独用的,这样就不会有覆盖的现象),当完成一个功能后,就可以用dev分支提交服务器中,这样也可以在git进行留痕,便于回退版本,再没啥问题后,切换到master分支,合并dev分支,代码就能同步到正式项目中。(这里单指一个人负责整个项目的情况,如果多人协助的话,在dev,master提交后应该先到【中间版本】的项目中dev分支,在确定没问题,再有【中间版本】项目(通常叫测试环境)切换master再提交到正式环境的项目)
本文链接:https://blog.runxinyun.com/post/192.html 转载需授权!
留言0