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分支进行了修改


相关文章
|
9天前
|
开发工具 git
使用Git根据日期进行代码版本切换的方法
通过以上步骤,可以有效地根据日期进行Git代码版本的切换。这种方法在需要回溯历史版本进行bug修复或功能复查时特别有用。Git的灵活性和强大功能使其成为现代软件开发不可或缺的工具之一。
210 103
|
4月前
|
存储 安全 开发工具
深度解决 Git “fatal: refusing to merge unrelated histories” 错误解析什么是历史分支优雅草卓伊凡
深度解决 Git “fatal: refusing to merge unrelated histories” 错误解析什么是历史分支优雅草卓伊凡
371 4
深度解决 Git “fatal: refusing to merge unrelated histories” 错误解析什么是历史分支优雅草卓伊凡
|
1月前
|
开发工具 git
Git版本控制工具合并分支merge命令操作流程
通过以上步聚焦于技术性和操作层面指南(guidance), 可以有效管理项目版本控制(version control), 并促进团队协作(collaboration).
250 15
|
3月前
|
数据可视化 Java 测试技术
Git Flow 现代实操指南含从代码提交到 CI/CD 全流程的实用技巧与长尾关键词解析 Git Flow
本指南结合现代技术趋势,详解Git Flow工作流,涵盖GitHub Actions自动化、Conventional Commits规范、Gitmoji可视化等内容,助你实现代码到CI/CD的全流程管理,提升团队开发效率与代码质量。
206 2
|
5月前
|
JavaScript 前端开发 持续交付
实际工作中 Git Commit 代码提交规范是什么样的?
实际工作中 Git Commit 代码提交规范是什么样的?
329 7
|
8月前
|
开发工具 git 开发者
vscode+git解决远程分支合并冲突
通过这些详细步骤,您可以掌握如何使用VSCode和Git高效地解决远程分支合并冲突,提高开发效率和代码质量。希望这些内容对您的学习和工作有所帮助。
1894 86
|
5月前
|
网络安全 开发工具 git
Git仓库创建与代码上传指南
本教程介绍了将本地项目推送到远程Git仓库的完整流程,包括初始化本地仓库、添加和提交文件、创建远程仓库、关联远程地址及推送代码。同时,还提供了`.gitignore`配置、分支管理等可选步骤,并针对常见问题(如认证失败、分支不匹配、大文件处理及推送冲突)给出了解决方案。适合初学者快速上手Git版本控制。
|
4月前
|
开发工具 git 索引
如何使用Git的暂存区来管理代码更改?
如何使用Git的暂存区来管理代码更改?
824 0
|
9月前
|
存储 项目管理 开发工具
图解Git——分支开发工作流《Pro Git》
分支开发工作流利用Git的分支功能,支持灵活的项目管理。长期分支如`master`和`develop`分别保存稳定和开发中的代码;短期主题分支用于开发单一特性或修复问题,完成后合并到主分支。此模式确保代码稳定性,支持并行开发、便于审查和灵活调整。建议维护明确的长期分支,保持主题分支短小精悍,并定期清理无用分支。配置上可保护关键分支,遵循命名规范。
381 7
|
9月前
|
存储 缓存 Java
图解Git——远程分支《Pro Git》
远程分支是 Git 中用于管理分布式协作的关键概念。远程引用指向远程仓库中的分支和标签,常用 `git ls-remote` 或 `git remote show` 查看。日常开发中,通常使用远程跟踪分支(如 `origin/main`)与远程分支交互,简化远程仓库状态的管理和使用。远程跟踪分支记录远程分支的状态,但本身只读。
183 6