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

在 Git 中,将本地分支的修改提交到主分支

在 Git 中,将本地分支的修改提交到主分支(如 main/master,通常有两种方式:

  1. 直接合并(Merge):将本地分支的更改合并到主分支。

  2. 变基(Rebase):使本地分支的提交历史更整洁。

以下是详细步骤(以 main 分支为例,master 同理):


📌 方法 1:直接合并(推荐新手使用)

1. 确保本地 main 分支是最新的

git checkout main       # 切换到主分支
git pull origin main   # 拉取远程最新代码

2. 切换回你的本地分支,并合并 main 分支

git checkout 你的分支名  # 切换回你的开发分支
git merge main         # 合并 main 分支的代码
  • 如果有冲突,手动解决冲突后执行:

    git add .            # 标记冲突已解决
    git commit -m "解决冲突"

3. 切换回 main 分支,并合并你的修改

git checkout main      # 切换回主分支
git merge 你的分支名    # 把你的修改合并到 main

4. 推送更新到远程 main 分支

git push origin main   # 提交到远程仓库

📌 方法 2:变基(Rebase,适合进阶用户)

1. 确保本地 main 分支是最新的

git checkout main
git pull origin main

2. 切换回你的分支,并变基到 main

git checkout 你的分支名
git rebase main       # 把你的提交“重新应用”到最新的 main 分支
  • 如果有冲突

    • 解决冲突后执行:

      git add .
      git rebase --continue
    • 如果想放弃变基:

      git rebase --abort

3. 切换回 main 分支并合并

git checkout main
git merge 你的分支名

4. 推送更新

git push origin main

⚠️ 注意事项

  1. main 分支受保护?

    • 如果远程 main 分支是受保护的(如 GitHub/GitLab),你可能需要 提交 Pull Request(PR) 而不是直接 push

    • 流程:

      git push origin 你的分支名  # 把你的分支推送到远程
      • 然后在 GitHub/GitLab 上提交 PR,由管理员审核后合并。

  2. 强制推送(git push -f)危险!

    • 如果使用 rebase 后推送,可能需要 git push -f,但 这会覆盖远程历史,仅限个人分支使用,不要在 main 分支上使用!

  3. 推荐工作流程

    • 在 main 分支上 git pull 保持最新。

    • 在 新分支 开发,完成后合并到 main


📋 总结

操作直接合并(merge变基(rebase
适用场景团队协作,历史清晰个人开发,提交历史整洁
冲突处理合并时解决一次变基时可能多次解决
推送方式git push origin main可能需要 git push -f(谨慎使用)

✅ 推荐新手使用 merge,避免 rebase 导致的复杂冲突。
✅ 团队项目 建议通过 PR/MR 方式合并代码,而不是直接 push 到 main

希望这篇指南能帮你顺利提交代码! 🚀

http://www.dtcms.com/a/322152.html

相关文章:

  • 数据结构--哈希表与排序、选择算法
  • PVE 9.0 保姆级安装及优化教程(换源、网络配置、远程唤醒等)【基础篇】
  • 农行鉴权问题
  • 嵌入式 Linux 驱动开发常见问题排查宝典(驱动开发篇)v1.0
  • “人工”智能究竟需要多少人工?
  • 《设计模式之禅》笔记摘录 - 14.组合模式
  • 使用Python+selenium实现第一个自动化测试脚本
  • 【GPT-OSS 全面测评】释放推理、部署和自主掌控的 AI 新纪元
  • 1688 图片搜图找货接口开发实战:从图像特征提取到商品匹配全流程
  • InfluxDB漏洞:Metrics 未授权访问漏洞
  • 自定义上传本地文件夹到七牛云
  • 【深度学习新浪潮】GPT-5正式发布:开启博士级智能新纪元
  • Redis基础数据类型
  • 支持向量机(SVM)全解析:原理、类别与实践
  • Nestjs框架: 基于 Argon2 的用户登录注册安全机制设计与实现
  • Vue框架总结案例
  • 抖音AI分身:帮助每个抖音创作者,打造自己的AI分身
  • 垃圾堆放识别准确率↑32%:陌讯多模态融合算法实战解析
  • 设计一个 Java 本地缓存组件
  • P1119 灾后重建【题解】
  • 【动态规划 | 二维费用背包问题】二维费用背包问题详解:状态设计与转移方程优化
  • 温室韭菜收割机的设计cad【12张】三维图+设计说明书
  • WinForm 实战 (进度条):用 ProgressBar+Timer 打造动态进度展示功能
  • AUTOSAR进阶图解==>AUTOSAR_EXP_AIOccupantAndPedestrianSafety
  • C++ Primer
  • window10本地运行datax与datax-web
  • 吴恩达 深度学习笔记
  • 校招秋招春招小米在线测评小米测评题库|测评解析和攻略|题库分享
  • 阶段二测试
  • 巧妙实现Ethercat转Profinet协议网关匹配光伏电站