Git合并分支

本文详细介绍了一种多人协作的Git工作流程,包括如何从远程仓库拉取最新代码、创建及推送新功能分支、审查并合并代码至主分支的过程,以及常用的Git命令和技巧。

一:需求背景.

        1.1 多人开发合作,其中甲同学维护远程主分支master,乙同学开发了一个新功能,经过甲乙丙同学共同协商一致认为该功能可行,于是甲同学决定将这个分支合并到远程仓库的master分支上去.

        1.2 首先是乙同学拉取远程最新的远程仓库.

        git remote rm origin

        git remote add origin git_url

        git pull

        1.3 乙同学开发新功能,和大伙并行开发. 在本地新建一个分支.

        git checkout -b function(并在当前分支下创建一个introduce.md文件模拟新功能)

       

        1.4 推送本地分支到远程仓库分支.

        git  push origin function

       

        1.5 查看远程仓库分支.

       

          1.6 将本地fuction分支开发内容推送至远程的开发分支function.     

        git add introduce.md

        git commit -m "提交描述"

        git push origin function:function(提交本地function分支至远程仓库function分支,如果远程分支不存在就会自动创建,自己测试过可以成功推送的).有三种写法.最后一个参数是目标位置,方便记忆.

       ① git push <远程主机名> <本地分支名>:<远程分支名>

       ② git push <远程主机名> <本地分支名>(直接推送一个和本地分支同名的远程分支,如果不存在就会新建一个的)

       ③ git push : <远程分支名> 这个就是使用一个空的本地分支更新一个远程分支的内容,就相当于删除远程分支.

      

       1.7 远程仓库分支内容查看.

  1.8 甲同学IDEA下获取乙同学提交的分支新功能.

  首先是甲同学IDEA是在自己的本地dev分支下开发的.

首先是远程的分支拉到本地.但是不合并哟.(没有和任何一个分支合并!,只是有选择的合并.相比git pull更安全一些.)

                                                  

上述操作新建一个本地分支.

拉取最新的远程分支内容到本地.并且和当前的function分支合并.

此时本地的function分支是最新的内容,接下来看看这个新的功能要不要合并到本地Master分支上去了.

甲同学感觉新功能很不多,于是将IDEA切换至本地Master分支.准备合并到本地的Master分支上去.

合并本地的function内容至Master分支上.

push至远程仓库

将之前本地仓库的修改文件一并提交至远程仓库主分支上.

二:Git实用

      2.1 将远程仓库分支拉取到本地分支的方式方法总结.fetch是将远程仓库的文件下载到本地,但是不合并,如果要想合并到当前分支或者是本地指定的分支,需要git merge命令帮助一下.

            git fetch origin(不指定分支名就是远程全部分支).

            git fetch origin XXX(拉下远程指定的分支).

            例如当前本地是master分支.要拉取远程的function分支到本地的function分支.

            git fetch origin function

           

            git checkout -b function(本地分支名) origin /function(远程分支名)

           

            git pull origin function

                     

            FECT_HEAD(解释一下,是指某个branch在服务器的最新状态).

           

            每一个执行fetch操作,都会存一个FETCH_HEAD列表.列表保存的位置如上图所示.

            这个当前分支指向的FETCH_HEAD,就是这个文件第一行对应的那个分支.

           如果没有指定就是将远程的Master分支作为FETCH_HEAD.

           如果指定的远程分支,那这个远程分支作为FECT_HEAD.

          

 

        2.2 IDEA下删除本地分支和远程分支.

             删除本地的function分支.(git branch -d XXX)

            

            删除远程仓库的function分支.git push origin :XXX(用一个空的本地分支更新远程分支).

           

       2.3 git diff命令

            git diff(不带参数).比较是工作区和暂存区的文件修改.

          

           IDEA下编写GIT命令也是棒棒的.使用方便,视觉上也更舒适一些吧.            

   2.3 git push -all <远程主机>(将本地的所有分支都推送至远程主机).

   2.4 git status (查询仓库的状态)

 

   2.5 git log(查看仓库历史记录)(详细版)

 

 2.6 查看历史提交所有版本的CommitID

2.7 git checkout -- file(撤销工作区的修改).

例如这里在本地的test分支下新建了一个文件,并且添加内容.

2.8 git reset HEAD 文件名

先总结到这里,初学者经验少嘛,不妥的地方欢迎修正.

在 IntelliJ IDEA 中使用 Git 合并分支是一个常见的版本控制操作,适用于团队协作开发和代码集成。以下是详细的步骤说明: ### 1. 确保项目已与 Git 集成 在进行合并操作之前,确保项目已经通过 `git init` 初始化为 Git 仓库,或者已经通过 `git clone` 克隆了远程仓库[^3]。如果是在 IDEA 中配置 Git,可以通过设置 Git 可执行文件路径,并测试是否能够正确识别仓库状态。 ### 2. 创建或切换到目标分支合并分支之前,需要将当前工作目录切换到希望接收更改的目标分支。例如,要将 `feature-branch` 合并到 `main` 分支中,则应切换到 `main` 分支: - 打开 **Git** 菜单(位于 IDEA 的顶部菜单栏)。 - 选择 **Manage Branches**,然后右键点击 `main` 分支并选择 **Checkout**。 也可以通过 IDEA 的底部状态栏直接切换分支。 ### 3. 合并分支 完成分支切换后,即可开始合并操作: - 在 **Git** 菜单中选择 **Merge Changes**。 - 在弹出的窗口中,选择希望合并到当前分支的源分支(如 `feature-branch`)。 - 点击 **Merge** 开始合并过程。 IDEA 会尝试自动解决冲突。如果存在冲突,IDEA 将提示手动解决。 ### 4. 解决冲突(如有) 当 Git 无法自动解决某些文件的冲突时,IDEA 会列出冲突文件。可以使用其内置的合并工具逐个处理冲突: - 打开冲突文件,IDEA 会在编辑器中高亮显示冲突区域。 - 使用 **Accept Yours**、**Accept Theirs** 或手动编辑的方式选择保留的内容。 - 完成修改后,右键点击文件并选择 **Mark as Resolved**。 ### 5. 提交合并结果 所有冲突解决完毕后,需要提交合并结果: - 打开 **Commit** 窗口(快捷键 `Ctrl+K` 或从顶部菜单选择 **Git > Commit**)。 - IDEA 会自动生成一个包含合并信息的提交消息,确认无误后点击 **Commit**。 ### 6. 推送更改到远程仓库 最后,将本地合并后的更改推送到远程仓库以供其他开发者访问: - 选择 **Git > Push**(快捷键 `Ctrl+Shift+K`)。 - 确认推送的分支并点击 **Push**。 ### 示例:IDEA 中 Git 合并操作的命令行等价形式 ```bash # 切换到目标分支 git checkout main # 合并 feature-branch 到 main git merge feature-branch ``` ### 注意事项 - 在合并前建议先拉取最新代码以避免冲突。 - 如果合并过程中出现问题,可以通过 `git merge --abort` 回滚合并操作。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大道之简

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值