惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

K
Kaspersky official blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
AI
AI
SecWiki News
SecWiki News
宝玉的分享
宝玉的分享
Scott Helme
Scott Helme
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Engineering at Meta
Engineering at Meta
博客园 - 叶小钗
The GitHub Blog
The GitHub Blog
Microsoft Azure Blog
Microsoft Azure Blog
N
News and Events Feed by Topic
Cloudbric
Cloudbric
B
Blog
Cisco Talos Blog
Cisco Talos Blog
V
Vulnerabilities – Threatpost
N
News and Events Feed by Topic
V
Visual Studio Blog
A
Arctic Wolf
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
U
Unit 42
S
Security @ Cisco Blogs
博客园 - 聂微东
T
Threat Research - Cisco Blogs
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Apple Machine Learning Research
Apple Machine Learning Research
Y
Y Combinator Blog
G
GRAHAM CLULEY
L
LINUX DO - 热门话题
量子位
NISL@THU
NISL@THU
Webroot Blog
Webroot Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
T
Troy Hunt's Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
T
Tenable Blog
月光博客
月光博客
S
Security Affairs
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
The Hacker News
The Hacker News
Spread Privacy
Spread Privacy
D
Docker
www.infosecurity-magazine.com
www.infosecurity-magazine.com
雷峰网
雷峰网
博客园 - 司徒正美
T
The Exploit Database - CXSecurity.com
Hugging Face - Blog
Hugging Face - Blog
Help Net Security
Help Net Security
D
DataBreaches.Net

博客园 - xiashengwang

Rocky Linux 9 安装docker Rocky Linux 9 与Centos区别,以及软件安装dnf命令 《Linux 基础点滴》:(17)SSH 密钥生成与管理 – 免密登录的利器 Linux服务器安全登录:从入门到实践 putty 基础 《Linux 基础点滴》:(16)firewalld 防火墙管理命令 《Linux 基础点滴》:(15)用户管理 – 创建、删除、权限与 sudo 《Linux 基础点滴》:(14)定时任务 – 用 crontab 自动化 《Linux 基础点滴》:(13)文本编辑入门 – 使用 Vim 《Linux 基础点滴》:(12)tldr – 简化版命令手册 《Linux 基础点滴》:(11)系统信息与资源监控 – 掌握服务器状态 《Linux 基础点滴》:(10)压缩与打包 – tar 的艺术 《Linux 基础点滴》:(9)查找与过滤 – find, grep, 管道 《Linux 基础点滴》:(8)网络基础 – 查看 IP、连通性与端口 《Linux 基础点滴》:(7)进程管理 – 查看与控制运行中的程序 《Linux 基础点滴》:(6)文件权限与所有者 – 保护你的文件 《Linux 基础点滴》:(5)文件与目录操作 – 增删改查必会命令 《Linux 基础点滴》:(4)磁盘空间查看 – df 和 du 的妙用 《Linux 基础点滴》:(3)Linux 文件系统概览 – 一切皆文件 《Linux 基础点滴》:(2)SSH 连接与基础命令 – 从登录到第一次操作 《Linux 基础点滴》:(1)初识 Linux 大家族 – 发行版分类与选择 docker学习(7)-docker compose 文件 docker学习(11)- 容器的日志(log) docker学习(10)-利用Github Action 自动化部署 docker学习(9)-Docker Swarm + Nginx 跨机器负载均衡 docker学习(8)-从 Windows 开发到 Linux 部署 docker学习(6)-数据持久化与网络通信 学会 Git Tag,让版本管理不再混乱 docker学习(5)-Dockerfile docker学习(4)-Docker常用命令 docker学习(3)-一个简单的例子 docker学习(2)-安装 docker学习(1)-基本概念 Github 使用 Self-hosted Runner 实现服务器自动化部署 Git Rebase vs Git Merge:深入理解与实战选择 Git 系统学习教程:从零到团队协作 AI学习笔记(2)-OpenClaw安装 windbg分析dmp文件 docker desktop 和 Vmware冲突的解决办法
github创建分支 + Pull Request 合并
xiashengwang · 2026-04-15 · via 博客园 - xiashengwang

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

整体流程

  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