GIT学习----第十二节:解决合并分支的冲突

学习目的

  1. 弄清除是如何产生分支冲突?
  2. 在出现冲突后如何解决冲突?

产生分支冲突

  1. 创建并切换分支study
1
2
$ git checkout -b study
Switched to a new branch 'study'
  1. 查看readme.txt文件
1
2
3
4
5
6
7
8
9
10
11
12
$ cat readme.txt
Git is a version control system.
Git is free software.
Git is a distributed version control system.
Git is free software.
添加一行测试工作区、暂存区、分支。
cat 命令测试。
测试修改文件后各区状态!
测试git diff,查看工作区和分支文件的修改情况!
再次测试git diff对比工作区和版本库最新版本的区别。
测试撤销修改!
Creating a new branch is quick.
  1. 修改readme.txt文件并提交
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
1. $ git status
On branch study
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)

modified: readme.txt

no changes added to commit (use "git add" and/or "git commit -a")

2. $ git add readme.txt

3. $ git commit -m "测试分支冲突1的提交"
[study e3b6465] 测试分支冲突1的提交
1 file changed, 2 insertions(+), 1 deletion(-)
  1. 切换回master分支
1
2
3
4
$ git checkout master
Switched to branch 'master'
Your branch is ahead of 'origin/master' by 1 commit.
(use "git push" to publish your local commits)
  1. 再次修改readme.txt文件并提交
1
2
3
4
5
1. $ git add readme.txt

2. $ git commit -m "测试分支冲突master提交"
[master 31fe606] 测试分支冲突master提交
1 file changed, 2 insertions(+), 1 deletion(-)
  1. 合并study分支
1
2
3
4
$ git merge study
Auto-merging readme.txt
CONFLICT (content): Merge conflict in readme.txt
Automatic merge failed; fix conflicts and then commit the result.

产生合并冲突

  1. 查看状态
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$ git status
On branch master
Your branch is ahead of 'origin/master' by 2 commits.
(use "git push" to publish your local commits)

You have unmerged paths.
(fix conflicts and run "git commit")
(use "git merge --abort" to abort the merge)

Unmerged paths:
(use "git add <file>..." to mark resolution)

both modified: readme.txt

no changes added to commit (use "git add" and/or "git commit -a")
  1. 查看文件内容
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$ cat readme.txt
Git is a version control system.
Git is free software.
Git is a distributed version control system.
Git is free software.
添加一行测试工作区、暂存区、分支。
cat 命令测试。
测试修改文件后各区状态!
测试git diff,查看工作区和分支文件的修改情况!
再次测试git diff对比工作区和版本库最新版本的区别。
测试撤销修改!
Creating a new branch is quick & simple.
测试分支冲突!
Creating a new branch is AND simple.
测试分支合并的冲突1!

手动解决冲突

Git用<<<<<<<(当前master更改),=======,>>>>>>>(分支study更改)标记出不同分支的内容!

  1. 手动解决冲突

    1
    2
    Creating a new branch is quick and simple.
    测试分支合并冲突!
  2. 再次提交

1
2
3
1. $ git add readme.txt
2. $ git commit -m "解决冲突提交"
[master 14f2011] 解决冲突提交
  1. 查看合并分支的情况
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
$ git log --graph
* commit 14f2011cde83c68cea09d9843b0332fd9a2de052 (HEAD -> master)
|\ Merge: 31fe606 e3b6465
| | Author: Rattenking <1148063373@qq.com>
| | Date: Wed Oct 24 16:43:46 2018 +0800
| |
| | 解决冲突提交
| |
| * commit e3b6465fec0b0e626465b3a8608d44e6f6a26d82 (study)
| | Author: Rattenking <1148063373@qq.com>
| | Date: Wed Oct 24 16:27:52 2018 +0800
| |
| | 测试分支冲突1的提交
| |
* | commit 31fe6069a4abec6c36d1b080b3d33ee909703c54
|/ Author: Rattenking <1148063373@qq.com>
| Date: Wed Oct 24 16:33:59 2018 +0800
|
| 测试分支冲突master提交
|
* commit c2799ed0de7ba38bfaf813e886bffebd8e6ef6cf
| Author: Rattenking <1148063373@qq.com>
| Date: Wed Oct 24 15:25:08 2018 +0800
|
:
  1. 查看合并分支简化信息
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$ git log --graph --pretty=oneline
* 14f2011cde83c68cea09d9843b0332fd9a2de052 (HEAD -> master) 解决冲突提交
|\
| * e3b6465fec0b0e626465b3a8608d44e6f6a26d82 (study) 测试分支冲突1的提交
* | 31fe6069a4abec6c36d1b080b3d33ee909703c54 测试分支冲突master提交
|/
* c2799ed0de7ba38bfaf813e886bffebd8e6ef6cf 提交分支git-study测试
* c8e9e508b22c94e9a15c9493d27017e8040cc2b0 (origin/master) 本地仓库命令总结 及 远程仓库创建学习
* 61500cbb98ea0c92d14d458bf687bbfc4f93793e git仓库
* 7ef25b5b91bd8010def470f54acd074d9bfaeeac 提交GIT学习的markdown文档资料
* 2b66c80c0c48eb14c0d8207775e5d109beb715af 彻底删除test.txt
* 196e901032be6a5d8861796ccfe382ca58c6d4fc 新建测试文件
* a22f5040574758a503a6147f9a4f450bca05a55f 测试撤销修改提交
* ffb306aed8ede0dfe770421cefb8011f5bba3ed1 再次测试git diff提交测试
* 8519ea54c233319819c90718e4f31af573632ba0 git diff 测试提交
* 5cc8766c378c412c3f6f476c57987aadc344f426 测试管理修改提交
* 3b8f1b20d0c3e238f413076c4f4715910156f570 cat命令测试
* 500dceab4bd5261c3fd9acd65df90d4e653d2047 提交工作区、暂存区、分支测试
* e2addc717e8e35a61c1748219095b06fd9cbff46 添加了两句话
* 101462868fcc996bd42169709499dbd33975847c wrote a readme file
  1. 删除study分支
1
2
$ git branch -d study
Deleted branch study (was e3b6465).

总结

  1. 如何产生的合并冲突:由于分支提交文件内容和主分支提交文件内容不一致导致的合并冲突!
  2. 如何处理冲突:手动查看需要保留的,将不需要的删除,最后提交解决冲突后的文件!
  3. 如何查看分支合并的情况:用带参数的git log查看分支的合并情况!git log –graph –pretty=oneline

其他

QQ交流群: 264303060

QQ交流群

我的博客,欢迎交流!

我的CSDN博客,欢迎交流!

微信小程序专栏

前端笔记专栏

微信小程序实现部分高德地图功能的DEMO下载

微信小程序实现MUI的部分效果的DEMO下载

微信小程序实现MUI的GIT项目地址

微信小程序实例列表

前端笔记列表

游戏列表