git分支介绍
首先项目建立,会有主干master,每一个开发人员从主干上拉取代码到本地,形成一个分支,一个开发可以使用无数个分支,首先在自己的分支上修改代码,当代码写的没问题后,要先将master上的代码拉到分支上,与分支进行测试后没问题,在将分支的代码与maste代码进行合并。
1.git分支操作
1.1.创建分支
git branch 分支名
git branch -d 分支名
1)使用git branch创一个分支 [root@192 ~]# cd /data_git/ [root@192 data_git]# git branch bug 2)查看所有分支,带*号表示当前在哪一个分支 [root@192 data_git]# git branch bug * master 3)删除一个分支 [root@192 data_git]# git branch -d bug 已删除分支 bug(曾为 a5fe3d8)。
1.2.切换分支
1)进入刚刚创建的bug分支 [root@192 data_git]# git checkout bug 切换到分支 'bug' [root@192 data_git]# git branch * bug master bug分支会记录有master上的所有文件内容
1.3.在分支上创建新功能并提交至本地仓库
[root@192 data_git]# vim file1 [root@192 data_git]# cat file1 jiangxl sadj sdjl;a akjskl dsjj sdalk sdajlkl [root@192 data_git]# git add . [root@192 data_git]# git commit -m "修改了file1" [bug 8a57ed8] 修改了file1 1 file changed, 3 insertions(+)
1.4.分支代码合并
合并分支首先要将master分支拉取到本地,测试没问题后再将matser代码与分支进行合并
合并分支,基于dev分支,将master分支的内容合并至dev分支,在dev上进行测试功能
要时刻保持与master上的代码是一致的
合并代码语法:
master合并bug就需要在master分支执行合并命令
bug合并master就需要在bug分支执行命令
1)当前分支 [root@192 data_git]# git branch * bug master 2)在bug分支合并master代码 [root@192 data_git]# git merge master Already up-to-date. #此输出表示master无最新代码 3)在master分支合并bug分支,首先切回到master,在使用merge命令进行合并 [root@192 data_git]# git checkout master 切换到分支 'master' [root@192 data_git]# git merge bug 更新 a5fe3d8..8a57ed8 Fast-forward file1 | 3 +++ 1 file changed, 3 insertions(+) 1个文件改动,3行插入
1.5.分支合并时出现冲突
分支合并冲突会出现在两个开发同时修改同一个代码文件的同一行,提交时会提示合并冲突
1)首先进入bug分支新建一个file7并提交到本地仓库 [root@192 data_git]# git branch * bug master [root@192 data_git]# vim file7 [root@192 data_git]# cat file7 jiangxl.com docx.jiangxl.com www.jiangxl.com [root@192 data_git]# git add . [root@192 data_git]# git commit -m "file7--3hang" [bug 884a629] file7--3hang 2 files changed, 3 insertions(+), 1 deletion(-) delete mode 100644 file4.txt create mode 100644 file7 2)切换到master也建一个file7并提交 [root@192 data_git]# git checkout master 切换到分支 'master' [root@192 data_git]# vim file7 [root@192 data_git]# cat file7 jiangxl jiangxl jiangxl jiangxl [root@192 data_git]# git add . [root@192 data_git]# git commit -m "file7" [master 2bf2d7f] file7 1 file changed, 4 insertions(+) create mode 100644 file7 3)切换到bug分支在进行合并会报错冲突 [root@192 data_git]# git checkout bug 切换到分支 'bug' [root@192 data_git]# git merge master 自动合并 file7 冲突(添加/添加):合并冲突于 file7 自动合并失败,修正冲突然后提交修正的结果。 4)解决冲突,与对应的开发协商好保留哪些代码,如果都保留则把1/5/10行删掉 [root@192 data_git]# vim file7 <<<<<<< HEAD #当前分支的 jiangxl.com docx.jiangxl.com www.jiangxl.com ======= jiangxl jiangxl jiangxl jiangxl >>>>>>> master #master分支的 修改完文件重新提交至本地仓库 [root@192 data_git]# git add . [root@192 data_git]# git commit -m "merge解决" 5)切回到master进行合并 [root@192 data_git]# git checkout master 切换到分支 'master' [root@192 data_git]# git merge bug 更新 22fddd3..e7821a1 Fast-forward file8 | 3 +++ 1 file changed, 3 insertions(+) 6)查看文件,已经合并 [root@192 data_git]# cat file7 jiangxl.com docx.jiangxl.com www.jiangxl.com jiangxl jiangxl jiangxl jiangxl