git 怎么拉去分支代码_Git管理代码:分支使用(五)

本文内容要点

  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之后即可创建好

1d8a41c2ae2551d8422bac0a108e45a1.png

4380c1cde141896f48fa64af42c4ed8b.png

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

9ef2bd1e95ef1be53e964f6dc6da94ff.png

6c31849aa9741cf097a730b2d7dd58dc.png

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

07486d692cb302f4a577168cb9041e62.png

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

5e7dab81e004ea197d6e6d08b10a2587.png

e75b057f8fb24af816a179834d387386.png

推送分支到远程仓库

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

799d04c4571df1ecc116d3f23044d3a4.png

合并分支

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

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

dab232c461473c2996e0b5d359c303ba.png

9636c0e05b2c4517cc8a633924f94486.png

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

48effbe1d9c9756e591a9db6f4c02537.png

5f5288a96288dc81c17347df187f43b3.png

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

ef5be254df0e7d4dc042ccf30da973b3.png

6ec4625d9bd1a6b063e1d1c0b8acddfa.png

b2e4897aa4902e62db4baab651413e18.png

86164303f6c925d0d1240edfd6416528.png

支冲突解决

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

b912dc598f09394e2ad175555f13bdc4.png

f279a5839e9c101134ad39861d423864.png

5ce5313d2b8934c231fd1598a060198d.png

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

1d746a2c17610641f2b07684d905c4a4.png

d81aa369feb2e33023ebe6116b079a9d.png

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

f0772bca809a35806550c4deeacc4185.png

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

58019a13ab2d75257a177302dd39ac82.png

查看版本分支图

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

b9d3feeefc99e30f8a2cc8c439c8c2d5.png

4d23da6f1e448156b662ea0e4f4ea1bf.png

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

删除分支

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

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

2f4cb3f53e0c6cb1a491e9ffc70425dd.png

4d23da6f1e448156b662ea0e4f4ea1bf.png

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

69c361193eba47352d1f408b191962fb.png

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

f346aaa1777109f8d5bf2ade905c1408.png

4218730c907b608ae85aefdfdd67841c.png

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

a1c1662fda20e22ce91b5e9b4f5a0baa.png

c15b01f0f7c5017291097b1db8fbeaaa.png

多人协作

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

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

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

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

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

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

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

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

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

部分操作如下图所示:

98cca1b61169018b4a5024a2233d805b.png

abbb9587945b544dc624b75871453fec.png

小结

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

  • 可以从中看到,我们很多的操作都是在项目的根目录下,进行右键选择TortoiseGit里面对应的操作来进行操作的,某些需要针对某个文件的操作在选中文件后,那么也是右键选择TortoiseGit里面对应的操作来进行操作的;
  • 团队的合作,我们一定要养成习惯每天先更新拉取远程代码(pull),然后每天提交推送自己的代码(commit+push)。

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值