[Git] 018 冲突在所难免,需要巧妙化解
0. 回顾
- [Git] 005 初识 Git 与 GitHub 之分支 中“4.2 情形二”的 9 提及了“解决冲突”
- 当时没有展开,这回详谈
- 我这回反其道而行,先讲一下制造冲突失败的案例
1. 没有条件,创造条件(第一创)
- 条件创造失败案例
1.1 新建一条分支,并切入其中
1.2 打开 "note_01.txt" 并修改
1.3 保存、添加、提交、切换
- 上图有个提示
Your branch is ahead of 'origin/master' by 1 commit.
- 当前分支 (master) 比远程仓库多一次 "commit"
- 目前的情况
1.4 合并
合并结果分析
- "conflict" 分支的内容覆盖了之前的内容
- 并没有产生冲突
- 倒是和 [Git] 017 加一条分支,享双倍快乐 的 "2.3" 一致
2. 继续创造条件(第二创)
- 条件创造失败案例
2.1 目前的情况
2.2 修改 "master" 分支的 "note_01.txt"
- 这一步是对“第一创”的改进
2.3 添加
- 这一步是对“第一创”的改进
2.4 切到 "conflict" 分支,并修改 "note_01.txt"
2.5 添加
2.6 切回 "master" 并合并
合并结果分析
- 并没有进行合并操作,原因:上回已经合并过了
- 并没有产生冲突
- [Git] 008 status 与 commit 命令的补充 的 "2.4" 是没有 "add" 之过
- 这回是没有 "commit" 之过
3. 事不过三(第三创)
- 成功创造“冲突”
3.1 目前的情况
- "2.1" 示意图适用于现在的情况
- 仓库没有变化,只是工作区与暂存区的内容变动了
3.2 切到 "conflict" 分支
- 从上方红框中可以看出工作区的 "note_01.txt" 有变动
3.3 修改 "conflict" 分支下的 "note_01.txt"
- 记得保存
3.4 添加并提交
3.5 切到 "master" 分支
3.6 修改 "master" 分支下的 "note_01.txt"
- 记得保存
3.7 添加并提交
3.8 合并
- 产生冲突
- "note_01.txt" 存在冲突
- 必须手动解决冲突后再提交
- 此时可以用
git status
查看一下
- 此时的 "note_01.txt"
4. 解决冲突
4.1 “ 定稿” "note_01.txt"
4.2 再次提交
4.3 目前的情况
4.4 "log" 命令的补充
git log --oneline --graph

更多精彩