Git 分支操作
在版本控制过程中,同时推进多个任务,为每个任务我们可以创建每个任务的单独分支,使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候不会影响主线分支的运行,对于初学者而言,说白了,分支可以简单理解为副本,一个分支就是一个单独的副本。
分支优点
同时并行推送多个功能开发,提高开发效率;各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响,失败的分支删除重新开始即可。
分支操作命令
命令名称 | 作用 |
git branch 分支名 | 创建分支 |
git branch -v | 查看分支 |
git checkout 分支名 | 切换分支 |
git merge 分支名 | 把指定的分支合并到当前分支 |
我们可以查看当前分支,并创建新的分支。
创建新的分支可以进行文件的修改,修改之后仍要再进行一次提交本地库过程。
将指定的分支合并到当前分支上
合并分支可能会产生冲突,其原因是:合并分支时,两个分支在同一个文件的同一位置有两套完全不同的修改。Git 无法替我们决定使用哪一个,必须人为决定新代码内容。 (通俗理解为:只要两个分支对同一个文件做了修改,则合并会出现conflict,因为Git不知道保留哪一个版本)
我们先把要进行合并的分支内容进行一定的修改
修改完成后切换到 master 分支进行合并,出现了冲突日志,提示我们自动合并失败,因为在say.txt文件里面有合并代码冲突
因为git对两个分支都进行了修改,git不知道我们要保存哪一个,所以出现合并冲突。
接下来需要我们进行手动合并。直接编辑 say.txt 将我们要保留的内容留下了。:wq 保存即可。
保存之后,还需要将我们人为修改的文件再一次提交到本地库上 。注意:再一次提交本地库的时候不需要在写文件名,否则会报错。
总结: 创建分支的本质就是多创建一个指针;HEAD如果指向 master,那么我们现在就在 master 分支上;HEAD如果执行hot-fix,那么我们现在就在hot-fix指针上。
Git中分支常用命令步骤:
# 列出本地所有分支
git branch
# 列出所有远程分支
git branch -r
# 新建一个分支,但依然停留在当前分支
git branch [branch-name]
# 新建一个分支,并切换到该分支
git checkout -b [branch]
# 合并指定分支到当前分支
git merge [branch]
# 删除分支
git branch -d [branch-name]
# 删除远程分支
git push origin --delete [branch-name]
git branch -dr [remote/branch]
如果同一个文件在合并时都被修改了则会引起冲突,解决办法是我们可以修改冲突文件后重新提交!选择要保留他的代码还是你的代码!master主分支应该非常稳定,用来发布新版本,一般情况下不允许在上面工作,工作一般情况在新建的分支如dev上工作,工作完之后比如要发布,dev分支代码稳定后可以合并到主分支 master 上来。
分支在Git中相对较难,分支就是科幻电影里面的平行宇宙,如果两个平行宇宙互不干扰,那对现在的你也没啥影响,在某个时间点一旦两个平行宇宙合并了,我们就需要处理一些问题了。
补充知识:
我们可以在gitee网站末尾查看一些 Git 相关知识,这里简单的说一下。
gitee中 Git 命令学习,通过游戏的方式来学习,真的挺香的了。
Git 团队协作
团队内协作
跨团队协作