文章目录

  • 一、前置环境准备
  • 1、克隆远程仓库
  • 2、feature1 分支操作
  • ( 1 ) 创建 feature1 分支
  • ( 2 ) 修改 feature1 分支
  • ( 3 ) 提交 feature1 分支
  • ( 4 ) 推送 feature1 分支
  • 3、master 分支操作
  • ( 1 ) 切换 master 分支
  • ( 2 ) 修改 master 分支
  • ( 3 ) 提交 master 分支
  • ( 4 ) 推送 master 分支
  • 二、远程仓库发起分支合并
  • 三、在远程仓库解决分支冲突
  • 四、在远程仓库正式合并分支版本

一、前置环境准备


在 【Git】Git 分支管理 ( 解决分支合并冲突 | 创建并切换分支 git switch -c feature1 | 修改 feature1 分支并提交 | 修改 master 主版本并提交 ) 博客的基础上 , 在远程仓库发起分支合并操作 ;

1、克隆远程仓库

执行

git clone https://codechina.csdn.net/han12020121/git-learning-course

克隆远程仓库 ;

2、feature1 分支操作

( 1 ) 创建 feature1 分支

执行 git switch -c feature1 命令 , 创建 feature1 分支 ;

D:\Git\git-learning-course>git switch -c feature1
Switched to a new branch 'feature1'

【Git】Git 分支管理 ( 解决分支合并冲突 | 前置环境准备 | 远程仓库发起分支合并 | 在远程仓库解决分支冲突 | 在远程仓库正式合并分支版本 )_分支合并

( 2 ) 修改 feature1 分支

当前 feature1 分支中的 README.txt 内容为 :

【Git】Git 分支管理 ( 解决分支合并冲突 | 前置环境准备 | 远程仓库发起分支合并 | 在远程仓库解决分支冲突 | 在远程仓库正式合并分支版本 )_分支合并_02

( 3 ) 提交 feature1 分支

执行

git commit -a -m "feature1"

提交 feature1 分支代码 ;

D:\Git\git-learning-course>git commit -a -m "feature1"
[feature1 3d9de4a] feature1
1 file changed, 1 insertion(+), 1 deletion(-)

【Git】Git 分支管理 ( 解决分支合并冲突 | 前置环境准备 | 远程仓库发起分支合并 | 在远程仓库解决分支冲突 | 在远程仓库正式合并分支版本 )_git_03

( 4 ) 推送 feature1 分支

执行

git push origin feature1

命令 , 将 feature1 分支推送到远程仓库 ;

D:\Git\git-learning-course>git push origin feature1
warning: redirecting to https://codechina.csdn.net/han12020121/git-learning-course.git/
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 16 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 332 bytes | 332.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
remote: GitLab: http post to gitlab api /post_receive endpoint: 500 Internal Server Error
To https://codechina.csdn.net/han12020121/git-learning-course
* [new branch] feature1 -> feature1

【Git】Git 分支管理 ( 解决分支合并冲突 | 前置环境准备 | 远程仓库发起分支合并 | 在远程仓库解决分支冲突 | 在远程仓库正式合并分支版本 )_分支合并_04

3、master 分支操作

( 1 ) 切换 master 分支

执行 git switch master 命令 , 切换回 master 分支 ,

( 2 ) 修改 master 分支

修改 master 分支的 README.txt 内容为 :

【Git】Git 分支管理 ( 解决分支合并冲突 | 前置环境准备 | 远程仓库发起分支合并 | 在远程仓库解决分支冲突 | 在远程仓库正式合并分支版本 )_git分支管理_05

( 3 ) 提交 master 分支

执行

git commit -a -m "master"

提交 master 分支代码 ;

D:\Git\git-learning-course>git commit -a -m "master"
[master faafce2] master
1 file changed, 1 insertion(+), 1 deletion(-)

【Git】Git 分支管理 ( 解决分支合并冲突 | 前置环境准备 | 远程仓库发起分支合并 | 在远程仓库解决分支冲突 | 在远程仓库正式合并分支版本 )_文件冲突_06

( 4 ) 推送 master 分支

执行

git push origin master

命令 , 将 feature1 分支推送到远程仓库 ;

D:\Git\git-learning-course>git push origin master
warning: redirecting to https://codechina.csdn.net/han12020121/git-learning-course.git/
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 16 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 329 bytes | 329.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
remote: GitLab: http post to gitlab api /post_receive endpoint: 500 Internal Server Error
To https://codechina.csdn.net/han12020121/git-learning-course
e9d0ace..faafce2 master -> master

【Git】Git 分支管理 ( 解决分支合并冲突 | 前置环境准备 | 远程仓库发起分支合并 | 在远程仓库解决分支冲突 | 在远程仓库正式合并分支版本 )_git_07

二、远程仓库发起分支合并


在远程仓库中 , 现在有 2 2 2 个分支 ;

【Git】Git 分支管理 ( 解决分支合并冲突 | 前置环境准备 | 远程仓库发起分支合并 | 在远程仓库解决分支冲突 | 在远程仓库正式合并分支版本 )_文件冲突_08

在远程仓库页面中 的 " 合并请求 " 页面 , 点击 " 新建合并请求 " 按钮 ,

【Git】Git 分支管理 ( 解决分支合并冲突 | 前置环境准备 | 远程仓库发起分支合并 | 在远程仓库解决分支冲突 | 在远程仓库正式合并分支版本 )_git branch_09

源分支 选择 要合并的分支 , feature1 分支 , 然后点击 " 比较分支并继续 " 按钮 ;

【Git】Git 分支管理 ( 解决分支合并冲突 | 前置环境准备 | 远程仓库发起分支合并 | 在远程仓库解决分支冲突 | 在远程仓库正式合并分支版本 )_git branch_10

设置相关信息 , 指派人 , 审核者 , 然后点击 " Submit " 合并请求 ;

【Git】Git 分支管理 ( 解决分支合并冲突 | 前置环境准备 | 远程仓库发起分支合并 | 在远程仓库解决分支冲突 | 在远程仓库正式合并分支版本 )_分支合并_11

在 " 合并请求 " 页面 , 查看已经有了 分支合并 请求 ;

【Git】Git 分支管理 ( 解决分支合并冲突 | 前置环境准备 | 远程仓库发起分支合并 | 在远程仓库解决分支冲突 | 在远程仓库正式合并分支版本 )_分支合并_12

三、在远程仓库解决分支冲突


查看分支合并的详细信息 :

【Git】Git 分支管理 ( 解决分支合并冲突 | 前置环境准备 | 远程仓库发起分支合并 | 在远程仓库解决分支冲突 | 在远程仓库正式合并分支版本 )_文件冲突_13

点击 " 本地合并 " , 显示本地合并操作步骤 ;

# 步骤一. 拉取并检查用于合并的分支

git fetch origin
git checkout -b "feature1" "origin/feature1"

# 步骤二. 在本地查看更改

# 步骤三. 合并分支并解决冲突

git fetch origin
git checkout "master"
git merge --no-ff "feature1"

# 步骤四. 推送代码并合并

git push origin "master"

【Git】Git 分支管理 ( 解决分支合并冲突 | 前置环境准备 | 远程仓库发起分支合并 | 在远程仓库解决分支冲突 | 在远程仓库正式合并分支版本 )_git_14

点击 " 解决冲突 " 按钮 ,

【Git】Git 分支管理 ( 解决分支合并冲突 | 前置环境准备 | 远程仓库发起分支合并 | 在远程仓库解决分支冲突 | 在远程仓库正式合并分支版本 )_文件冲突_15

修改后 , " 提交到源分支 " ;

【Git】Git 分支管理 ( 解决分支合并冲突 | 前置环境准备 | 远程仓库发起分支合并 | 在远程仓库解决分支冲突 | 在远程仓库正式合并分支版本 )_git_16

四、在远程仓库正式合并分支版本


点击 " 合并 " 按钮 , 勾选 " 删除源分支 " 选项 ;

【Git】Git 分支管理 ( 解决分支合并冲突 | 前置环境准备 | 远程仓库发起分支合并 | 在远程仓库解决分支冲突 | 在远程仓库正式合并分支版本 )_git branch_17

合并完成 , 点击 " 标记为完成 " 按钮 ;

【Git】Git 分支管理 ( 解决分支合并冲突 | 前置环境准备 | 远程仓库发起分支合并 | 在远程仓库解决分支冲突 | 在远程仓库正式合并分支版本 )_文件冲突_18

分支合并完成 , 只剩下 master 分支 , feature1 分支已经删除成功 ;

【Git】Git 分支管理 ( 解决分支合并冲突 | 前置环境准备 | 远程仓库发起分支合并 | 在远程仓库解决分支冲突 | 在远程仓库正式合并分支版本 )_git分支管理_19