当前位置: 首页 > news >正文

github创建分支 + Pull Request 合并

github创建分支 + Pull Request 合并

2026-04-15 17:50  xiashengwang  阅读(0)  评论(0)    收藏  举报

整体流程

  1. 在本地从 main 分支创建 dev 分支,并推送到 GitHub
  2. 从 dev 分支创建 feature/update-home 分支,修改代码
  3. 推送 feature/update-home 分支到 GitHub
  4. 在 GitHub 上创建 Pull Request:feature/update-home → dev,合并
  5. 在 GitHub 上创建 Pull Request:dev → main,合并(触发自动部署)
  6. 本地同步最新代码

第一步:在本地创建 dev 分支并推送

打开 PowerShell,进入项目目录:

cd D:\flask-ci-demo

确保当前在 main 分支且是最新代码:

git checkout main
git pull origin main

从 main 创建 dev 分支:

git checkout -b dev

将 dev 分支推送到远程仓库(GitHub):

git push origin dev

现在 GitHub 上就有了 dev 分支。

第二步:从 dev 创建功能分支 feature/update-home

git checkout dev
git pull origin dev          # 确保 dev 是最新的
git checkout -b feature/update-home

第三步:修改代码(模拟添加功能)

编辑 app.py,例如修改首页返回的消息:

@app.route('/')
def hello():return f'{greeting} from Docker and CI! (Feature branch update)'

保存文件。

第四步:提交并推送功能分支

git add app.py
git commit -m "Update home page message"
git push origin feature/update-home

第五步:创建 Pull Request 合并到 dev

  1. 打开浏览器,进入你的 GitHub 仓库页面。
  2. 点击 Pull requests 标签 → New pull request。
  3. base 选择 dev,compare 选择 feature/update-home。
  4. 点击 Create pull request,填写标题(如 “Update home message”),然后创建。
  5. 点击 Merge pull request → Confirm merge。
  6. 合并后,点击 Delete branch 删除远程的 feature/update-home(可选)。
  7. 本地删除feature/update-home
git checkout dev
git branch -d feature/update-home

第六步:同步本地 dev 分支

回到 PowerShell,拉取最新的 dev(包含刚才的合并):

git checkout dev
git pull origin dev

第七步:创建 Pull Request 从 dev 合并到 main

  1. 回到 GitHub 仓库页面,再次点击 New pull request。
  2. base 选择 main,compare 选择 dev。
  3. 点击 Create pull request,标题例如 “Release dev to main”。
  4. 点击 Merge pull request → Confirm merge。

第八步:自动部署

由于你之前配置的 GitHub Actions 监听 main 分支,合并后会触发自动构建和部署。等待 Actions 完成。

第九步:验证部署

打开浏览器访问 http://你的服务器IP:5000,应该看到新的消息 (Feature branch update)。

第十步:本地同步 main 分支

git checkout main
git pull origin main

现在你的本地 main 和 dev 都是最新的。

第十一步:保护 main 分支

保护main分支,不能被update,delete,只能通过pull request的方式吧代码合并到main分支。这是基于对生产代码主线分支的保护。这个功能需要项目是public项目,或者账号是github team账号(付费)。我用一个public的项目来演示如何保护main分支。
github 开发项目主页 -> Settings -> Branches-> Branch protection rules -> Add branch ruleset
image
image
以下这几个必须勾上。
image
image
image
点Create就可以了。

之后,修改source就不能push到main了,只能通过github的request来合并。
image

总结命令速查

操作场景 执行命令 / 操作
从 main 创建 dev git checkout -b dev → git push origin dev
从 dev 创建 feature git checkout -b feature/xxx
推送 feature 到远程 git push origin feature/xxx
合并 feature 到 dev GitHub PR 操作
拉取最新 dev 代码 git checkout dev → git pull origin dev
合并 dev 到 main GitHub PR 操作
拉取最新 main 代码 git checkout main → git pull origin main