当前位置: 首页 > 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.lryc.cn/news/614706.html

相关文章:

  • 广东省省考备考(第七十天8.8)——言语、判断推理(强化训练)
  • ubuntu 22.04 使用yaml文件 修改静态ip
  • 开发板RK3568和stm32的异同:
  • Redis对象编码
  • 【Bellman-Ford】High Score
  • 荣耀秋招启动
  • Sum of Four Values(sorting and searching)
  • 两个函数 quantize() 和 dequantize() 可用于对不同的位数进行量化实验
  • 力扣-189.轮转数组
  • 优选算法 力扣 15. 三数之和 双指针降低时间复杂度 C++题解 每日一题
  • 深入解析 Seaborn:数据可视化的优雅利器
  • 自定义上传本地文件夹到七牛云
  • 虚拟机Ubuntu图形化界面root用户登录错误
  • 使用pybind11封装C++API
  • Shell、Python对比
  • 要写新项目了,运行老Django项目找找记忆先
  • C++中的继承:从基础到复杂
  • 飞算JavaAI深度解析:专为Java生态而生的智能引擎
  • 安全引导功能及ATF的启动过程(四)
  • 巧妙实现Ethercat转Profinet协议网关匹配光伏电站
  • 「ECG信号处理——(22)Pan-Tompkins Findpeak 阈值检测 差分阈值算法——三种R波检测算法对比分析」2025年8月8日
  • C语言编译流程讲解
  • 【Open3D】基础操作之三维数据结构的高效组织和管理
  • 内网穿透原理与部署实战指南:从理论到企业级应用
  • 第七章:数据持久化 —— `chrome.storage` 的记忆魔法
  • 2025 蓝桥杯C/C++国B 部分题解
  • 设计一个 Java 本地缓存组件
  • java分布式定时任务
  • 秋招笔记-8.8
  • BGP协议笔记