美文网首页DevOps开发相关知识
Git管理代码:分支使用(五)

Git管理代码:分支使用(五)

作者: 暖A暖 | 来源:发表于2019-03-05 12:05 被阅读72次

    本文内容要点:

    1. 分支是什么?

    2. 创建分支

    3. 推送分支到远程仓库

    4. 合并分支

    5. 分支冲突解决

    6. 查看版本分支图

    7. 删除分支

    8. 多人协作

    分支是什么?

    分支可以理解为平行的几条公路,公路之间互不干扰,从主分支建立几个子分支,相当于公路的岔路口一样,然后ABC三人各走一条路,互相之间谁也不干扰谁,最后到另外一个交叉路口时,三人就又可以碰面走到一起了。

    分支在实际开发中的作用可以这样理解:现在有ABC三人同时开发一个项目,A开发功能一、B开发功能二、C开发功能三,如果三人同时在同一个项目同一条分支上面开发的话,很容易造成互相之间文件冲突等困境,对开发很不方便,这时我们就可以依赖Git来开启三条分支,A在A的分支里面做他自己的东西,B在B的分支里面做他的开发,C也是类似这样,各做各的,最后当他们三个人的代码功能都开发完毕后,再把他们做的分支进行合并,就是把功能一、二、三都合并到一起,这样整个项目就完成了,相互之间你不干扰我,我不干扰你,是不是感觉世界多么美好?

    默认情况下,git会帮你自动建立一个master的分支,这个就是主分支,我们之前操作的代码版本就都是这个分支上面操作的,一般地master是作为最核心最重要的分支使用的,项目所有代码都在里面。接下来我们开始学习如何创建更多的分支。

    创建分支

    使用TortoiseGit创建分支非常简单:根目录空白右键 > TortoiseGit > Create Branch...(创建分支),在对话框填写分支英文名(Branch)和注释(description),其他选项默认,OK之后即可创建好

    5-1.png 5-2.png

    创建好之后,默认工作区间还是在master分支下面的,需要切换分支时就可以切换到刚才建立的分支,右键执行:TortoiseGit > Switch/Checkout(切换分支)

    5-3.png 5-4.png

    切换好之后,提交的时候就会变成分支的名字了,这个时候提交就是提交到这个分支啦。

    5-5.png

    注意:如果是多个团队协作的时候,我本地创建好了分支并且推送到了远程仓库,但是其他的同事更新拉取远程默认分支代码的时候,他的本地是没有建立我的分支的,但是他可以看到我的远程分支,那么如果他需要进入我的分支,在本地仓库建立一个分支的话,只要选择远程分支,进行切换,就自动在本地建立一个分支啦。

    5-6.png 5-7.png

    推送分支到远程仓库

    我们创建好分支后,这个时候分支的信息都还是在我本地仓库的,那么我们只要对代码进行commit(如果有编写新代码)和push后,远程仓库就会看到有分支了,操作和以前的推送master分支是一样的。

    5-8.png

    合并分支

    我们对上面创建好的分支进行一些开发修改,然后提交保存后,接下来我们需要把这个分支的代码合并到主分支master:

    • 分支开发,我们这里修改test.txt文件,在里面加入了相关的文字,然后commit和push
    5-9.png 5-10.png

    切换为master分支(需要把其他分支合并到某个分支,这时就需要切换到此分支,如分支一要合并到分支二里,那么就要切换到分支二):

    5-11.png 5-12.png

    接着执行:TortoiseGit > Merge...(合并),然后选择要合并的分支和填写需要合并信息,OK之后,你会发现分支的代码就过来啦。。。

    5-13.png 5-14.png 5-15.png 5-16.png

    分支冲突解决

    当合并分支的时候,往往都是不太顺利的,特别是同一个文件被多个分支修改过的时候,就会出现合并冲突了。现在,我再创建一条分支,接着分别切换到这两条分支对应修改这个test.txt的文件,然后再合并这个分支,结果如下:

    5-17.png 5-18.png 5-19.png

    这个错误的意思就是告诉你:Git想自动合并分支,但是这个test.txt的文件发生冲突了,需要手工进行合并,点击Resolve(解决),就会列出所有冲突的文件,点OK之后,再一一去找到这些文件,对应的打开里面进行修改

    5-20.png 5-21.png

    打开冲突的代码,会发现里面Git把冲突的地方使用<<<<<<< HEAD=======>>>>>>> develop_shopingcart标识出来了,=======分隔开来的就是这主分支和develop_shopingcart的冲突代码区分

    5-22.png

    手工修改后,去除标识代码,然后进行commit和push提交保存即可。

    5-23.png

    查看版本分支图

    我们操作了这么多版本和分支信息,我们可以通过一个Git的分支图形来查看版本分支结构的,那样更加直观哦,执行TortoiseGit > Revision Graph,如下图

    5-24.png 5-25.png

    以上的分支图,表示从v0.1分出了两个分支,然后又合并到了master分支了。

    删除分支

    分支功能开发完成后,或者是建立分支建立错了,如果我们不再需要了的话,可以删除掉分支,具体如下操作:

    目前远程和本地分支情况如下二图所示:

    5-26.png 5-27.png

    我现在要删除develop_order分支,先通过上一步的查看版本分支图(Revison Graph),打开后,找到你想要删除的分支,右键如下:

    5-28.png

    Delete Branch/tag有三个选项:refs/heads/develop_order就是删除本地分支,refs/remotes/origin/develop_order就删除远程仓库分支,All就是本地和远程都删除。我们这里执行All,都删除!确认后,本地和远程都删除了,再也切换不了这个分支啦,耶!

    5-29.png 5-30.png

    然后远程和本地的分支状态就是这样了:

    5-31.png 5-32.png

    多人协作

    工作中,大多数情况下都是多个哥们一块来开发一个项目的,那么就需要Git这样的软件+码云来实现代码同步更新,从而实现协作。

    通过前几节教程和今天这节分支教程,我们应该学会了如何创建版本仓库,如何提交版本,如何推送到远程仓库……只有推送到远程仓库,其他的人才能拉取到你的代码哦。所以,多人协作需要码云或者是Github这样的第三方服务亦或是自己搭建服务器来实现代码的共享仓库。

    接着我们稍微讲解一下在码云上面的代码协作步骤,有需求的同学可以试一下,其他的用户使用码云也是类似我这几节课所讲解那样使用的:

    1. 团队成员各自在码云注册帐号

    2. 项目管理员在码云建立项目,初始化项目,设定好各个成员的分支,也可以在分支中设置各个成员的权限,一般地master分支由管理员控制,其他的人不能push修改这个分支。

    3. 项目管理员在码云的项目管理面板中设置开发成员,并且可以设定各个成员的权限,如果是各个成员都使用SSH访问的话,需要添加大家的SSH公钥到里面才能访问

    4. 各个成员安装Git相关的软件和环境,然后设置好相关的访问代码库的方式、用户名和密钥等

    5. 各个成员通过项目地址拉取项目源码,然后切换到自己的分支,那么这里面的代码就是属于你自己的开发分支了。

    6. 最后各个成员在各自分支开发好之后,管理员进行分支合并,合并完成后提交到远程保存,这个时候就可以打标签,发布新版本啦!

    部分操作如下图所示:

    5-33.png 5-34.png

    小结

    针对小白入门Git+码云的操作就到此结束了,通过这几节课程我们可以了解到Git+TortoiseGit的使用,有了这些技能,我们做项目的开发以及和团队的协作会更加的顺畅啦。

    • 可以从中看到,我们很多的操作都是在项目的根目录下,进行右键选择TortoiseGit里面对应的操作来进行操作的,某些需要针对某个文件的操作在选中文件后,那么也是右键选择TortoiseGit里面对应的操作来进行操作的;

    • 团队的合作,我们一定要养成习惯每天先更新拉取远程代码(pull),然后每天提交推送自己的代码(commit+push)。

    这几节课程针对的主要是windows下的用户,实际上在mac上面的使用也是类似的,只是安装的软件不太一样而已,大家可以尝试一下,后续我们会继续推出和Git相关的在Mac上的使用和在Linux服务器上使用Git更新来发布部署等相关教程,敬请期待,感谢你的学习,和你一起,期待再次与你相见!!

    参考:https://www.9xkd.com/2584736170.html

    相关文章

      网友评论

        本文标题:Git管理代码:分支使用(五)

        本文链接:https://www.haomeiwen.com/subject/zplnuqtx.html