文章目录
1.分支(重点)
1.概念
-
分支是一个个版本最终存储的位置。
-
分支,就是一条时间线,每次git commit形成一个个版本,一个个版本依次存储在分支的一个个提交点上。
2.分支操作
1.查看分支
查看当前窗口的分支 git branch,仓库中默认只有master分支,执行git commit时,默认是在master分支上保存版本。
# git branch
F:\repo1>git branch
* master
2.创建分支
-
为什么要创建分支
因为我们在开发的时候,不可能一开始写好的代码稳定性等类似其他因素是最好的情况,若都是一股脑只存在master上,就会使的master主分支上很杂乱无章。因此,我们在需要创建一个分支如dev,比如刚刚开发好的内容,提交到dev中,等到测试后,很稳定很稳定,在放到master上,这样子就确保master主分支上的内容是最稳定的。
-
创建分支 git branch name
# git branch dev F:\repo1>git branch dev F:\repo1>git branch dev * master
3.切换分支
使用命令 git checkout dev
如何测试有两个分支呢?
3.多分支细节
- 就如上面的测试,为啥我一切换分支,原来的c.txt 文件就不见了,这是为什么呢?这就要跟多分支走向有关系了。
4.查看日志
git log # 完整详细的日志
git log --oneline # 简单的日志
如果出现bug :WARNING: terminal is not fully functional
请看这篇文章:https://blog.csdn.net/xueyijin/article/details/111419374
5.分支合并(重点)
-
什么叫分支合并?
比如当dev分支开发项目已经很成功了,绝对没有bug了,那么就需要让dev与master分支合并,统一起来。
-
分支合并,主要分为快速合并跟三方合并。
1.快速合并
-
前提条件:在创建另一个分支dev的时候,主分支master不动,即从创建分支dev起,没有再创建新的节点,而dev分支创建新的节点了,此时合并,只需要将master分支的指针,直接指向dev分支的节点上即可。
-
语言解释不通,图形来解释。
-
这种时候,不能使用快速合并。
2.三方合并
针对刚刚上面最后一张图片出现的情况的解决方案。
3.演示(快速合并)
-
有空的小伙伴,可以自行练习三方合并。
-
合并命令
# git merge 待合并分支 git merge dev # 将dev合并到 当前分支上,当前分支是master,就是将dev合并到master上
6.合并冲突
-
什么叫冲突
就是A同学修改了a.txt文件,B同学也修改了a.txt文件,合并的时候,git并不知道以那个为准。需要人工决定。
-
案例
master分支上与dev分支上的文件都有a b文件,且master分支上在a.txt 上输入 master aaaaa,dev分支上的文件在a.txt文件上输入 dev aaaaaa,之后将dev合并到master上。
F:\repo1>git merge dev Auto-merging a.txt CONFLICT (content): Merge conflict in a.txt # 自动合并失败,需要取修复这个,然后再去提交 Automatic merge failed; fix conflicts and then commit the result.
此时我们看一下a文件,我们发现,这就是git不知道以谁为准,直接列出来,让你选择,当我决定要保留dev aaaa的时候,把master的内容 以及 <<<< >>>> ====这些标记删除。
# 再执行一次添加,即可 F:\repo1>git add . F:\repo1>git commit -m "a.txt" [master 266f52b] a.txt