Git 分支提交同步到主干的详细教程——(包含命令行和idea操作两种方式)

news2024/10/10 2:25:12

文章目录

  • Git 分支提交同步到主干的详细教程
    • 一、Git 命令行操作
      • 1. 确保分支上的代码已提交
      • 2. 切换到主干分支
      • 3. 拉取最新的主干分支代码
      • 4. 合并分支到主干
        • 方式一:使用 `merge` 进行合并
        • 方式二:使用 `rebase` 进行合并
      • 5. 推送合并后的代码到远程主干分支
      • 命令行操作总结
    • 二、使用 IntelliJ IDEA 进行操作
      • 1. 提交分支上的代码
      • 2. 切换到主干分支
      • 3. 拉取最新主干分支代码
      • 4. 合并分支到主干![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/1e014ea4f38241a097d13fbae6571add.png)
        • 使用 `Rebase` 操作
      • 5. 推送合并后的代码
      • IntelliJ IDEA 操作总结
    • 三、常见问题及解决方案
      • 1. 合并冲突
      • 2. Rebase 后历史记录消失

Git 分支提交同步到主干的详细教程

本文档将介绍如何使用 Git 和 IntelliJ IDEA 将分支的代码合并同步到主干分支。无论你是命令行操作还是通过 IDEA 图形化界面操作,都可以参考此教程。


一、Git 命令行操作

1. 确保分支上的代码已提交

在你当前的工作分支上,首先确保所有更改都已提交。使用以下命令提交代码:

git add .
git commit -m "你的提交信息"

2. 切换到主干分支

使用 git checkout 命令切换到主干分支,通常主干分支命名为 mainmaster

git checkout main  # 或者 git checkout master

3. 拉取最新的主干分支代码

在主干分支上,通过 git pull 获取远程仓库中的最新主干分支代码,确保你合并的基础是最新的:

git pull origin main  # 如果是 master 就替换成 master

4. 合并分支到主干

你可以选择使用 mergerebase 来合并分支。两者的区别是 merge 保持所有提交历史,rebase 则会将分支上的提交重新整理为线性提交。

方式一:使用 merge 进行合并
git merge your-branch-name

如果合并过程中出现冲突,Git 会提示你手动解决冲突。解决完冲突后提交:

git add .
git commit -m "解决冲突的提交"
方式二:使用 rebase 进行合并

使用 rebase 命令会将你分支上的提交移动到主干最新提交之后,以确保提交记录是线性的:

git rebase your-branch-name

如果遇到冲突,Git 会提示你解决冲突,解决后继续执行:

git rebase --continue

5. 推送合并后的代码到远程主干分支

最后,将合并后的主干分支推送到远程仓库:

git push origin main

命令行操作总结

# 1. 提交分支上的代码
git add .
git commit -m "你的提交信息"

# 2. 切换到主干分支
git checkout main  # 或 master

# 3. 拉取主干最新代码
git pull origin main

# 4. 合并分支到主干
git merge your-branch-name  # 或者 git rebase your-branch-name

# 5. 推送到远程主干
git push origin main

二、使用 IntelliJ IDEA 进行操作

1. 提交分支上的代码

  • 打开 IntelliJ IDEA 并进入项目。
  • Git 窗口中,点击右上角的 Commit 按钮,勾选所有需要提交的文件,填写提交信息,点击 Commit

2. 切换到主干分支

  • 在 IntelliJ IDEA 的右下角分支选择区域,点击当前分支名,弹出分支列表,选择 main(或者 master)分支,点击切换。

3. 拉取最新主干分支代码

  • 切换到主干分支后,点击 IDEA 工具栏上的 Git 菜单,然后选择 Pull

4. 合并分支到主干在这里插入图片描述

  • 切换到 main 分支后,再次点击右下角的分支选择区域,选择 Merge into Current,并选择你要合并的分支。

    在这里插入图片描述

  • 如果出现冲突,IDEA 会提示你解决冲突,手动解决并提交即可。

使用 Rebase 操作
  • 切换到 main 分支后,点击右下角分支列表,选择 Rebase onto,选择你的分支进行 Rebase 操作。

5. 推送合并后的代码

  • 完成合并后,点击 Git 菜单中的 Push,将本地代码推送到远程主干。

IntelliJ IDEA 操作总结

  1. 提交分支代码:Commit
  2. 切换分支:选择 mainmaster
  3. 拉取主干代码:Pull
  4. 合并分支:Merge into CurrentRebase onto
  5. 推送代码:Push

三、常见问题及解决方案

1. 合并冲突

无论使用 git merge 还是 git rebase,在合并分支时都可能遇到冲突。冲突是由于相同文件的相同部分被多个分支修改时产生的。

解决方案:

  • Git 会提示哪些文件有冲突。打开有冲突的文件,手动解决冲突。

  • 文件中会出现冲突标记,如下:

    <<<<<<< HEAD
    当前主干分支的代码
    =======
    你分支的代码
    >>>>>>> your-branch-name
    
  • 手动选择保留哪个部分的代码(或合并二者),然后保存文件。

  • 解决完冲突后执行以下命令:

    git add .
    git commit -m "解决冲突的提交"
    

2. Rebase 后历史记录消失

使用 rebase 操作时,它会将提交记录重新整理为线性历史,可能导致看不到分支中的独立提交历史。这是正常的行为,若你希望保留分支的提交历史,请使用 merge 而非 rebase


以上就是将分支提交同步到主干的详细教程,包含 Git 命令行操作和 IntelliJ IDEA 图形化操作。如果有任何问题或异常,建议先仔细检查冲突或错误信息,合理解决后再进行提交和推送操作。

希望对你有所帮助,若有问题欢迎指正~😊

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2195521.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

github 搭建个人导航网

最近搭建了个 个人的导航网&#xff0c;具体内容见下图&#xff0c;欢迎大家访问吖&#xff0c;点击访问 具体实现是使用 vue3 编写&#xff0c;白嫖 github 的 page 部署 首先在 github上创建一个仓库&#xff1a;name.github.io # name是你 github 的名字 然后在本地创建一…

Linux安装部署MySQL8.0加遇着问题解决

1.首先我先给个URL下载MySQL官方网站https://downloads.mysql.com/archives/community/ 2.选择Linux的红帽系统 3.接着选择红帽系统的7版本,x86 4.接着选择MySQL版本,此时我选择8.4.0,下载rpm bundle这个,下载下面这个就好 5.Windows文件上传到Linux系统 rz上传文件命令,找到…

【D3.js in Action 3 精译_030】3.5 给 D3 条形图加注图表标签(下):Krisztina Szűcs 人物专访 + 3.6 本章小结

当前内容所在位置&#xff08;可进入专栏查看其他译好的章节内容&#xff09; 第一部分 D3.js 基础知识 第一章 D3.js 简介&#xff08;已完结&#xff09; 1.1 何为 D3.js&#xff1f;1.2 D3 生态系统——入门须知1.3 数据可视化最佳实践&#xff08;上&#xff09;1.3 数据可…

【redis-05】redis保证和mysql数据一致性

redis系列整体栏目 内容链接地址【一】redis基本数据类型和使用场景https://zhenghuisheng.blog.csdn.net/article/details/142406325【二】redis的持久化机制和原理https://zhenghuisheng.blog.csdn.net/article/details/142441756【三】redis缓存穿透、缓存击穿、缓存雪崩htt…

Qt+大恒相机回调图片刷新使用方式

一、前言 上篇文章介绍了如何调用大恒SDK获得回调图片&#xff0c;这篇介绍如何使用这些图片并刷新到界面上。考虑到相机的帧率很高&#xff0c;比如200fps是很高的回调频率。那么我们的刷新频率是做不到这么快&#xff0c;也没必要这么快。一般刷新在60帧左右就够了。 二、思路…

springboot kafka多数据源,通过配置动态加载发送者和消费者

前言 最近做项目&#xff0c;需要支持kafka多数据源&#xff0c;实际上我们也可以通过代码固定写死多套kafka集群逻辑&#xff0c;但是如果需要不修改代码扩展呢&#xff0c;因为kafka本身不处理额外逻辑&#xff0c;只是起到削峰&#xff0c;和数据的传递&#xff0c;那么就需…

Unity_Obfuscator Pro代码混淆工具_学习日志

Unity_Obfuscator Pro代码混淆工具_学习日志 切勿将密码或 API 密钥存储在您附带的应用程序内。 混淆后的热更新暂时没有想到怎么办 Obfuscator 文档 https://docs.guardingpearsoftware.com/manual/Obfuscator/Description.html商店链接Obfuscator Pro&#xff08;大约$70&a…

169.254.0.0/16是什么地址?

169.254.0.0/16是一个链路本地地址&#xff0c;也称为连结本地位址&#xff0c;主要用于局域网内的主机相互通信。‌ 这种地址仅供在网段或广播域中的主机相互通信使用&#xff0c;不需要外部互联网服务‌。 169.254.0.0/16地址段定义在RFC 3927中&#xff0c;当DHCP服务器无法…

永洪BI:企业数字化转型的得力助手

在当今快速变化的商业环境中&#xff0c;数据已成为企业决策的重要依据。随着大数据、云计算和人工智能技术的发展&#xff0c;企业对数据分析的需求日益增长。永洪BI&#xff08;Business Intelligence&#xff09;作为国内领先的商业智能解决方案提供商&#xff0c;以其强大的…

在mac中通过ip连接打印机并实现双面打印

首先需要找到电脑自带的打印。添加打印机。 填写好打印机的ip地址&#xff0c;然后添加。 填写好ip地址后&#xff0c;直接添加就行 添加完打印机后其实就可以打印了。但是有些功能可能实现不了&#xff0c;比如说双面打印。为了实现双面打印的功能&#xff0c;需要再进行设置…

从0到1:企事业单位知识竞赛答题小程序迭代开发笔记一

背景调研 企事业单位知识竞赛答题小程序&#xff0c;在信息技术迅猛发展的时代&#xff0c;企业和事业单位在提升员工素质和知识水平方面面临着新的挑战。为了增强员工的学习积极性、提高团队凝聚力和整体素质&#xff0c;越来越多的单位开始组织知识竞赛活动。传统的知识竞赛…

SQL第13课——创建高级联结

本课讲另外一些联结&#xff08;含义和使用方法&#xff09;&#xff0c;如何使用表别名&#xff0c;如何对被联结的表使用聚集函数。 13.1 使用表别名 第7课中使用别名引用被检索的表列&#xff0c;给列起别名的语法如下&#xff1a; SQL除了可以对列名和计算字段使用别名&a…

kafka和zookeeper单机部署

安装kafka需要jdk和zookeeper环境&#xff0c;因此先部署单机zk的测试环境。 zookeeper离线安装 下载地址&#xff1a; zookeeper下载地址&#xff1a;Index of /dist/zookeeper 这里下载安装 zookeeper-3.4.6.tar.gz 版本&#xff0c;测试环境单机部署 上传服务器后解压缩 …

代码随想录 | Day29 | 回溯算法:电话号码的字母组合组合总和

代码随想录 | Day29 | 回溯算法&#xff1a;电话号码的字母组合&&组合总和 关于这个章节&#xff0c;大家最好是对递归函数的理解要比较到位&#xff0c;听着b站视频课可能呢才舒服点&#xff0c;可以先去搜一搜关于递归函数的讲解&#xff0c;理解&#xff0c;再开始…

Linux -- 命令(一)

目录 知识点登入Xshellwhoamipwdlscdtouchstattreewhichll和ls和ls -lnanorm*关联符mancp 知识点 windows&#xff1a;\路径分隔符 Linux: /路径分割符目录 文件夹 如果建立一个空文件&#xff0c;修改文件也要占据磁盘空间文件 内容 属性 学习文件&#xff1a;要么对内容操…

宝塔面板专业版有什么区别?支持更多专业版插件

宝塔面板专业版和免费版有什么区别&#xff1f;宝塔面板专业版相比免费版支持更多专业版插件&#xff0c;包括&#xff1a;防火墙、网站监控、宝塔任务管理、对象存储、宝塔系统加固等专业版插件&#xff0c;详细参考 bt.cn/u/DjHjth 宝塔面板专业版和免费版区别 宝塔linux面板…

快速部署vue项目

简介 在现代前端开发中&#xff0c;工具的选择对于提高开发效率至关重要。Vite 是一个新型的前端构建工具&#xff0c;它利用了 ES 模块的特性来提供快速的开发体验。而 pnpm 则是一个高效的包管理器&#xff0c;能够极大地节省磁盘空间并加速依赖安装过程。本文将介绍如何使用…

Python | 由高程计算坡度和坡向

写在前面 之前参加一个比赛&#xff0c;提供了中国的高程数据&#xff0c;可以基于该数据进一步计算坡度和坡向进行相关分析。 对于坡度和坡向&#xff0c;这里分享一个找到的库&#xff0c;可以方便快捷的计算。这个库为&#xff1a;RichDEM&#xff0c;官网地址如下 https…

基于SpringBoot的音乐网站系统

本地测试环境&#xff1a;eclipse或idea&#xff0c;数据库MySQL5.7&#xff0c; jdk1.8 使用技术&#xff1a;SpringBootMyBatis 主要功能&#xff1a;分类管理、音乐管理、系统管理等

用java做一个简易版球球大作战

该界面模拟了一个简单的“吃球”游戏&#xff0c;一开始多个球在屏幕上移动&#xff0c;并检查每个大球是否可以吃掉其他小球&#xff0c;且更新状态&#xff0c;删除已经被吃掉的小球。通过图形绘制和逻辑处理实现了游戏的基本功能。 主界面World.java package gzeu.test.da…