当前位置:首页 > 开发工具及运维 > git 分支合并冲突

git 分支合并冲突

6个月前 (05-23)62

准备新的feature1分支,继续我们的新分支开发

[root@node1 git]# git checkout -b feature1
D    git/LICENSE.txt
Switched to a new branch 'feature1'

修改readme.txt最后一行,改为

Creating a new branch is quick AND simple.

feature1分支上提交

[root@node1 git]# git commit -m "AND simple"
[feature1 b9dc73f] AND simple
 1 file changed, 1 insertion(+), 1 deletion(-)

切换到master分支

[root@node1 git]# git checkout master
D    git/LICENSE.txt
Switched to branch 'master'
Your branch is ahead of 'origin/master' by 1 commit.
  (use "git push" to publish your local commits)

Git还会自动提示我们当前master分支比远程的master分支要超前1个提交。

master分支上把readme.txt文件的最后一行改为

Creating a new branch is quick & simple.

提交

[root@node1 git]# git add readme.txt 
[root@node1 git]# git commit -m "& simple"
[master 051826e] & simple
 1 file changed, 1 insertion(+), 1 deletion(-)

现在,master分支和feature1分支各自都分别有新的提交,变成了这样

git 分支合并冲突 _ Java侠

 

 这种情况下,Git无法执行“快速合并”,只能试图把各自的修改合并起来,但这种合并就可能会有冲突,我们试试看

[root@node1 git]# git merge feature1
Auto-merging git/readme.txt
CONFLICT (content): Merge conflict in git/readme.txt
Automatic merge failed; fix conflicts and then commit the result.

果然冲突了!Git告诉我们,readme.txt文件存在冲突,必须手动解决冲突后再提交。git status也可以告诉我们冲突的文件

 

[root@node1 git]# git status
# On branch master
# Your branch is ahead of 'origin/master' by 2 commits.
#
# Unmerged paths:
#   (use "git add/rm <file>..." as appropriate to mark resolution)
#
#       both modified:      readme.txt
#
no changes added to commit (use "git add" and/or "git commit -a")

我们可以直接查看readme.txt的内容

[root@node1 git]# cat readme.txt 
Git is a distributed version control system.
Git is free software distributed under the GPL.
Git has a mutable index called stage.
Git tracks changes of fiels.
My stupid boss still prefers SVN
<<<<<<< HEAD
Creating a new branch is quick & simple.
=======
Creating a new branch is quick ADD simple.
>>>>>>> feature1

Git用<<<<<<<=======>>>>>>>标记出不同分支的内容,我们修改如下后保存

Creating a new branch is quick and simple

再提交

[root@node1 git]# git add readme.txt 
[root@node1 git]# git commit -m "conflict fixed"
[master 59bc1cb] conflict fixed

现在,master分支和feature1分支变成了下图所示:

git 分支合并冲突 _ Java侠

 

 

 带参数的git log也可以看到分支的合并情况

[root@node1 git]# git log --graph --pretty=oneline --abbrev-commit
*   59bc1cb conflict fixed
|\
| * 75a857c AND simple
* | 400b400 & simple
|/
* fec145a branch test
...

最后,删除feature1分支

[root@node1 git]# git branch -d feature1
Deleted branch feature1 (was 75a857c)

工作完成。

 

小结

当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。

git log --graph命令可以看到分支合并图

作者:答&案
来源链接:https://www.cnblogs.com/wanglan/p/7453740.html

标签: Git合并

“git 分支合并冲突” 的相关文章

git切换分支合并后再切回原来分支导致没有提交的代码丢失

git切换分支合并后再切回原来分支导致没有提交的代码丢失

git切换分支合并后再切回原来分支导致没有提交的代码丢失 前言 在企业开发中,总会需要用远程仓库来管理整个团队的项目代码,git是我们常...

Git(创建与合并分支)

Git(创建与合并分支)

在版本回退里,你已经知道,每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支。截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分...

Git 合并两个分支内容

  1,将开发分支代码合入到master中 git checkout dev #切换到dev开发分支 git pull git checkout ma...

git 合并分支到master 上详细步骤(指令加IDEA操作)

git 合并分支到master 上详细步骤(指令加IDEA操作)

    (前提,熟悉git基本原理,以及基本命令) 本博客主要记录下自己在使用git期间的一些问题,主要是创建分支,切换分支,推送分支到...

IDEA中使用git合并分支的过程报错:cant checkout because of unmerged files

使用idea的git插件控制代码分支合并时,由于操作不当,报错了,控制台报错如下: cant checkout because of unme...

在IDEA(2020.2)中配置Git,以及如何在idea中使用Git

在IDEA(2020.2)中配置Git,以及如何在idea中使用Git

目录展示: 一、 idea中配置git...

git合并不同分支

本地项目目录下打开gitbash 切换到想合并的文件,比如文件名是a: git checkout a 拉最新代码:git pull...

Git 分支合并代码

Git 分支合并代码

  https://blog.csdn.net/u010312474/a...

git整理纷乱的历史合并记录

git整理纷乱的历史合并记录

https://github.com/Epix37/Hearthstone-Deck-Tracker 以上面版本库的master分支为例 父节点1 SHA-1: a21...

git代码 vscode 本地分支合并远程分支,远程分支合并到本地分支

git代码 vscode 本地分支合并远程分支,远程分支合并到本地分支

一.本地分支合并远程分支 1.创建本地分支test 代码方式: git checkout -b test 它是下面两条命令的简写:...