Git - Git教程 1.3:解决冲突
解决冲突
1 - 准备新分支 feature1
1 $ git branch feature1 2 $ git checkout feature1 3 Switched to branch 'feature1'
2 - 为 FILE_T.txt 添加内容 Creating a new branch is quick AND simple. 添加且完成提交
1 $ git add FILE_T.txt 2 $ git commit -m "simple" 3 [feature1 3687f9a] simple 4 1 file changed, 1 insertion(+), 1 deletion(-)
3 - 切换回 master 分支
1 $ git checkout master 2 Switched to branch 'master'
4 - 在 master 分支上把 FILE_T.txt
文件的最后一行改成 Creating a new branch is quick & simple. 添加且提交
1 $ git add FILE_T.txt 2 $ git commit -m "& simple" 3 [master 16365cf] & simple 4 1 file changed, 1 insertion(+), 1 deletion(-)
现在的 master 分支和 fraturel 分支各自都分别有新的提交
6 - 这种情况下 Git 是无法执行快速合并,只能试图把各自的修改合并起来,但这种合并极有可能会有冲突
1 $ git merge feature1 2 Auto-merging FILE_T.txt 3 CONFLICT (content): Merge conflict in FILE_T.txt 4 Automatic merge failed; fix conflicts and then commit the result.
果然!Git 告诉我们 FILE_T.txt 文件存在冲突,必须手动解决冲突后再提交。使用 git status 可以告诉我们冲突的文件
1 $ git status 2 On branch master 3 You have unmerged paths. 4 (fix conflicts and run "git commit") 5 (use "git merge --abort" to abort the merge) 6 7 Unmerged paths: 8 (use "git add <file>..." to mark resolution) 9 10 both modified: FILE_T.txt 11 12 no changes added to commit (use "git add" and/or "git commit -a")
我们可以直接查看 FILE_T.txt 的内容
1 $ cat FILE_T.txt 2 CREATE BRANCH TEST! 3 <<<<<<< HEAD 4 Creating a new branch is quick & simple. 5 ======= 6 Creating a new branch is quick AND simple. 7 >>>>>>> feature1
Git 用 <<<<<<< /
======= /
>>>>>>>
标记出不同分支的内容;现在我们把冲突的内容修改成 Creating a new branch is simple 并进行查看
$ cat FILE_T.txt Create a new branch Creating a new branch is simple
7 - 提交
1 $ git add FILE_T.txt 2 $ git commit -m "conflict fixed" 3 [master 684e02c] conflict fixed
8 - 现在 master 分支和 featurel1 分支变成了下图所示
9 - 使用带参数的 git log 可以看到分支的合并情况
1 $ git log --graph --pretty=oneline --abbrev-commit 2 * 4776222 (HEAD -> master) conflict fixed 3 |\ 4 | * 0285122 (feature1) simple 5 * | 3d9d333 & simple 6 |/ 7 * adf1cd6 new branch 8 * e5012ec start branch
10 - 最后删除 featurel1 分支即可
1 $ git branch -d feature1 2 Deleted branch feature1 (was 0285122). 3 $ git log --graph --pretty=oneline --abbrev-commit 4 * 4776222 (HEAD -> master) conflict fixed 5 |\ 6 | * 0285122 simple 7 * | 3d9d333 & simple 8 |/ 9 * adf1cd6 new branch 10 * e5012ec start branch
小结
1 - 当 Git 无法自动合并分支时,就必须首先解决冲突,解决冲突后,再提交,合并完成
2 - 解决冲突就是把 Git 合并失败的文件手动编辑为我们希望的内容,再提交
注:用 git log --graph 命令可以看到分支合并图
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)