git操作详解(二)-分支管理
分支管理
一、创建分支
重新创建一个仓库git_lvhuayan_2
1、手动新增一个new01.py文件,内容为print('new01')
2、使用 git add * 、git commit -m “第一次提交” 进行提交
3、手动新增一个new02.py文件,内容为print('new02')
4、使用 git add * 、git commit -m “第二次提交” 进行提交
5、通过命令 git branch 查看当前分支情况
6、通过命令 git branch dev 创建一个dev的新分支
7、通过命令 git checkout dev 切换到dev分支
备注:步骤2、3可以通过命令git checkout -b dev 完成相同操作
二、新分支上提交并切换到master分支
1、对new02.py文件进行修改,内容为print('devnew02')
2、使用 git add * 、git commit -m “dev分支第一次提交” 进行提交
3、使用 git log --pretty=oneline 查看git日志
4、使用命令 git checkout master 切换回master分支,此时会发现new02.py的修改已经没了,因为已经切换到master分支
三、把dev分支合并到master分支
1、使用命令git merge dev 把dev分支上的内容合并到分支master,git merge命令用于合并指定分支到当前分支,Fast-forward表明这次合并是“快进模式”,也就是直接把master指向dev的当前提交,所以合并速度非常快。
2、当分支合并后,可以通过命令git branch -d dev 删除dev分支
四、分支合并时的冲突
1、使用命令git checkout-b dev创建并切换到分支dev
2、对new02.py文件进行修改,添加一行内容为print('dev')并提交到版本库
3、使用命令 git checkout master
4、对new02.py文件进行修改,添加一行内容为print('master')并提交到版本库上面这种情况,git无法执行"快速合并",只能试图把各自的修改合并起来,但这种合并就可能会有冲突。冲突原因:master分支和dev分支各自都分别有新的提交,并且编辑了同一个文件。
5、冲突解决:同时打开new02.py文件,<<<<<HEAD 下面表示主分支做的修改,=======表示分割线,>>>>>>dev上面表示dev分支做的修改,对new02.py文件进行编辑,把<<<<<HEAD、=======>>>>dev去掉,并由自己选择需要保存的内容,使用git add*、git commit-m“冲突解决”提交到版本库
5、forward模式Fast Forward意为”快进模式”。主要使用在多分支合并的情况下。即:当前分支合并另一个分支的时候,如果合并的过程中没有冲突的时候,则会通过直接移动两个分支的指针,来达到合并的过程,这个过程就叫做Fast Forward。在Fast Forward模式下,当我们合并分支后,将会删除无用的分支dev,在这种情况下,Fast Forward就有一个弊端暴露了,即:删除分支后,会丢掉分支的所有信息。在合并dev分支的时候,通过命令git merge --no-ff -m “禁用Fast Forward模式合并分支” dev 可以强制禁用Fast Forward模式提交,然后再使用命令git log --graph --pretty=oneline --abbrev-commit 查看日志即可看到分支信息。
以下图为禁用Fast Forward模式: