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

【Git】项目多个分支开发、维护与优化处理 ing

默认一个main分支
创建两个分支

git checkout main
git pull    # 保证 main 最新git checkout -b optimize
git push -u origin optimizegit checkout -b stable
git push -u origin stable

目前三个分支 :
main 负责日常开发
stable 稳定发布版本,其他两个分支功能无误可以合并进来,进行版本的发布,打上标签tag进行标记
optimize 优化分支,有重大变动先在此分支修改验证

平时在main分支开发,无误后合并到stable分支,改动相差不大可以合并到optimize分支,优化部分可以直接在optimize分支进行。

合并 master 分支代码到其他分支

以下gpt得,实测可行

  1. 查看当前所在分支
git branch
  1. 切换到 stableoptimize 分支
git switch stable      # 或者 git checkout op  
  1. 拉取最新的 master 分支改动

    git fetch origin         # 获取远程的所有更新
    
  2. 使用 rebasemaster 上的更新应用到当前分支(stableoptimize

    git rebase origin/master
    

以上命令实际是 把自己当前分支的提交,重新整理到最新 master 后面,形成一条直线,也相当于将远程 master 的改动合进来。
4. 解决可能的冲突(暂未使用过):
如果有冲突,Git 会停止并提示你解决冲突。解决冲突后:

git add <conflicted-file>  # 标记已解决冲突的文件
git rebase --continue      # 继续 rebase 操作
  1. 推送到远程仓库
    由于使用了 rebase,你可能需要使用 --force 推送到远程仓库:

    git push origin stable --force  # 或者 git push origin op --force
    

    注意: 使用 --force 推送时要小心,因为它会覆盖远程的历史记录。如果其他人在该分支上工作,可能会导致他们的提交丢失。确保与团队成员沟通清楚。

自动拉取合并所有分支

创建

touch auto_pull_all.sh
sudo vim auto_pull_all.sh

内容

#!/bin/bash# 获取所有远程分支
git fetch --all# 遍历所有本地分支
for branch in $(git branch | sed 's/^\*//'); do# 切换到该分支git checkout $branch# 执行拉取并合并git pull origin $branch
done

赋权限

gitchmod +x auto_pull_all.sh

运行

./auto_pull_all.sh

其他分支重置为master分支内容

# 切换到 optimize 分支
git switch optimize# 强制将 optimize 的内容重置为 master
git reset --hard master# 推送到远程(用 --force 覆盖远程 optimize)
git push origin optimize --forcegit switch stable
git reset --hard master
git push origin stable --force

stable分支更新同步到master(未实测)

git switch master
git rebase stable
git push origin master
http://www.xdnf.cn/news/2908.html

相关文章:

  • 第二节:文件系统
  • Java基础
  • 1.6二重积分
  • 浅谈人工智能发展现状
  • Python-pandas-DataFrame取值--.loc[]、.iloc[] 具体的操作及详细语义和语法说明
  • Linux文件传输:FTP服务器配置全攻略
  • Foupk3systemX5OS系统产品设备
  • 扩散模型与正弦位置编码
  • datasets 数据处理封装后,统一处理流程以避免Dataset Map顺序依赖问题
  • 《算法吞噬幻想乡:GPT-4o引发的艺术平权运动与版权核爆》
  • 数据库Mysql学习——day7(多表查询(JOIN)进阶)
  • 软件测试深度解析:从“用户登录“看测试用例设计的艺术
  • 什么是 Web 标准?为什么它们对 SEO 和开发很重要?
  • TRex 控制台命令解析
  • 【计算机视觉】三种图像质量评价指标详解:PSNR、SSIM与SAM
  • 【MySQL数据库】表的连接
  • OpenGL学习笔记(HDR、泛光)
  • ros2_不同ROS_DOMAIN_ID环境变量之间通信
  • vuex与vuex-persistedstate 插件固化数据
  • Spring框架allow-bean-definition-overriding详细解释
  • terraform隐藏云账号ak/sk信息
  • Linux系统中的静态库和动态库
  • 《无刷空心杯电机减速机选型及行业发展趋势》
  • 解密面试高频题:加权轮询负载均衡算法 (Java 实现)
  • 量子算法调试:Grover算法搜索空间压缩过程可视化方案
  • 算法笔记.kruskal算法求最小生成树
  • 汤晓鸥:计算机视觉的开拓者与AI产业化的先行者
  • 深入理解 Spring 类型转换核心接口 ConversionService
  • emqx部署
  • 厚铜板的镀前处理差异:工艺参数与成本影响