GIT04_分支概述、查看、创建、切换、合并分支、代码冲突如何定位解决(下)

简介: ⑤. 合并分支 git merge hot-fix

⑤. 合并分支 git merge hot-fix


  • ①. git merge 分支名


  • ②. 我们在 hot-fix的a.txt文件的最后追加了内容,提交了到本地库,现在切回到了master,在master上进行代码的合并操作


Administrator@SD-20191128LXMQ MINGW64 /d/gitRepos/repo1 (master)
$ cat a.txt
hello TANGZHI
hello TANGZHI
hello TANGZHI
hello TANGZHI
hello TANGZHI
hello TANGZHI
hello TANGZHI
hello TANGZHI
hello TANGZHI
第二次版本迭代
Administrator@SD-20191128LXMQ MINGW64 /d/gitRepos/repo1 (master)
$ git merge hot-fix
Updating d39bee4..ba6920a
Fast-forward
 a.txt | 1 +
 1 file changed, 1 insertion(+)
Administrator@SD-20191128LXMQ MINGW64 /d/gitRepos/repo1 (master)
$ cat a.txt
hello TANGZHI
hello TANGZHI
hello TANGZHI
hello TANGZHI
hello TANGZHI
hello TANGZHI
hello TANGZHI
hello TANGZHI
hello TANGZHI
第二次版本迭代
这是hot-fix分支修改了


③. 有时候合并操作不会如此顺利。 如果你在两个不同的分支中,对同一个文件的同一个部分进行了不同的修改,Git就没办法合并它们,同时会提示文件冲突。此时需要我们打开冲突的文件并修复冲突内容,最后执行git add命令来标识冲突已解决



(注意:如果我们要进行分支的合并,首先我们应该将master分支先合并到自己的分支,将冲突解决,然后再将自己的分支合并到master,这样就不会有问题)


这里有三个分支,master、hot-fix、TANGZHI


我们在hot-fix的a.txt文件中修改了内容,在最后一行添加了"这是hot-fix分支修改了"


我们在TANGZHI的a.txt文件中修改了内容,在最后一行添加了"TANGZHI分支进行了修改"

切回到主分支,将hot-fix分支合并到master这里不会产生问题,正常合并


切回到主分支,将TANGZHI分支合并到master产生了冲突,因为我们对同一个文件进行了修改


手动解决冲突,重新进行提交,注意提交的时候 git commit -m “这个后面不能带有文件名”


$ git branch TANGZHI
Administrator@SD-20191128LXMQ MINGW64 /d/gitRepos/repo1 (master)
$ git checkout TANGZHI
Switched to branch 'TANGZHI'
Administrator@SD-20191128LXMQ MINGW64 /d/gitRepos/repo1 (TANGZHI)
$ vim a.txt
Administrator@SD-20191128LXMQ MINGW64 /d/gitRepos/repo1 (TANGZHI)
$ git commit -am "TANGZHI分支追加了内容"
[TANGZHI fdd1068] TANGZHI分支追加了内容
 1 file changed, 1 insertion(+)
Administrator@SD-20191128LXMQ MINGW64 /d/gitRepos/repo1 (TANGZHI)
$ git checkout master
Switched to branch 'master'
Administrator@SD-20191128LXMQ MINGW64 /d/gitRepos/repo1 (master)
$ git checkout hot-fix
Switched to branch 'hot-fix'
Administrator@SD-20191128LXMQ MINGW64 /d/gitRepos/repo1 (hot-fix)
$ vi a.txt
Administrator@SD-20191128LXMQ MINGW64 /d/gitRepos/repo1 (hot-fix)
$ git commit -am "hot-fix分支冲突问题"
[hot-fix eb0e4ea] hot-fix分支冲突问题
 1 file changed, 1 insertion(+)
Administrator@SD-20191128LXMQ MINGW64 /d/gitRepos/repo1 (hot-fix)
$ git checkout master
Switched to branch 'master'
Administrator@SD-20191128LXMQ MINGW64 /d/gitRepos/repo1 (master)
$ git merge hot-fix
Updating ba6920a..eb0e4ea
Fast-forward
 a.txt | 1 +
 1 file changed, 1 insertion(+)
Administrator@SD-20191128LXMQ MINGW64 /d/gitRepos/repo1 (master)
$ cat a.txt
hello TANGZHI
hello TANGZHI
hello TANGZHI
hello TANGZHI
hello TANGZHI
hello TANGZHI
hello TANGZHI
hello TANGZHI
hello TANGZHI
第二次版本迭代
这是hot-fix分支修改了
hot-fix分支演示和TANGZHI分支的冲突问题
Administrator@SD-20191128LXMQ MINGW64 /d/gitRepos/repo1 (master)
$ git merge TANGZHI
Auto-merging a.txt
CONFLICT (content): Merge conflict in a.txt
Automatic merge failed; fix conflicts and then commit the result.
Administrator@SD-20191128LXMQ MINGW64 /d/gitRepos/repo1 (master|MERGING)
$ git merge TANGZHI
error: Merging is not possible because you have unmerged files.
hint: Fix them up in the work tree, and then use 'git add/rm <file>'
hint: as appropriate to mark resolution and make a commit.
fatal: Exiting because of an unresolved conflict.
Administrator@SD-20191128LXMQ MINGW64 /d/gitRepos/repo1 (master|MERGING)
$ git status
On branch master
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:   a.txt
no changes added to commit (use "git add" and/or "git commit -a")
Administrator@SD-20191128LXMQ MINGW64 /d/gitRepos/repo1 (master|MERGING)
$ cat a.txt
hello TANGZHI
hello TANGZHI
hello TANGZHI
hello TANGZHI
hello TANGZHI
hello TANGZHI
hello TANGZHI
hello TANGZHI
hello TANGZHI
第二次版本迭代
这是hot-fix分支修改了
<<<<<<< HEAD
hot-fix分支演示和TANGZHI分支的冲突问题
=======
TANGZHI分支进行了修改
>>>>>>> TANGZHI
Administrator@SD-20191128LXMQ MINGW64 /d/gitRepos/repo1 (master|MERGING)
$ vi a.txt
Administrator@SD-20191128LXMQ MINGW64 /d/gitRepos/repo1 (master|MERGING)
$ git status
On branch master
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:   a.txt
no changes added to commit (use "git add" and/or "git commit -a")
Administrator@SD-20191128LXMQ MINGW64 /d/gitRepos/repo1 (master|MERGING)
# 注意这里不能带文件名字,因为git不能识别是哪个分支下的文件
$ git commit -am  "冲突解决了"
[master 0c17f90] 冲突解决了
Administrator@SD-20191128LXMQ MINGW64 /d/gitRepos/repo1 (master)
$ git stauts
git: 'stauts' is not a git command. See 'git --help'.
The most similar command is
        status
Administrator@SD-20191128LXMQ MINGW64 /d/gitRepos/repo1 (master)
$ git status
On branch master
nothing to commit, working tree clean
Administrator@SD-20191128LXMQ MINGW64 /d/gitRepos/repo1 (master)
$ git checkout TANGZHI
Switched to branch 'TANGZHI'
Administrator@SD-20191128LXMQ MINGW64 /d/gitRepos/repo1 (TANGZHI)
$ cat a.txt
hello TANGZHI
hello TANGZHI
hello TANGZHI
hello TANGZHI
hello TANGZHI
hello TANGZHI
hello TANGZHI
hello TANGZHI
hello TANGZHI
第二次版本迭代
这是hot-fix分支修改了
TANGZHI分支进行了修改


相关文章
|
1月前
|
开发工具 git 开发者
|
1月前
|
开发工具 git
|
1月前
|
开发工具 git C++
【git 实用指南】git下载、拉取 代码
【git 实用指南】git下载、拉取 代码
180 2
|
1月前
|
开发工具 git
【git 实用指南】git 上传代码
【git 实用指南】git 上传代码
34 2
|
1月前
|
开发工具 git 开发者
|
1月前
|
开发工具 git
|
6天前
|
开发工具 git
git 拉取代码仓库代码报错(合并错误 refusing to merge unrelated histories)
git 拉取代码仓库代码报错(合并错误 refusing to merge unrelated histories)
15 0
|
10天前
|
数据可视化 开发工具 git
Git代码版本管理入门
Git代码版本管理入门
|
28天前
|
开发工具 C语言 数据安全/隐私保护
git提交代码到远端仓库的方法详解
git提交代码到远端仓库的方法详解
|
30天前
|
算法 开发工具 git
【git 实用指南】git 增加 本地代码 git add 相关命令和复杂情况需求
【git 实用指南】git 增加 本地代码 git add 相关命令和复杂情况需求
92 0

相关实验场景

更多