主要用于分享如何使用可视化工具创建分支,删除,合并、挑拣、剥离、pr,以及一些基本操作,如果您是命令极客,可以忽略。同时这也是做过团队内部技术分享的,完全可以包含企业日常开发98%的Git使用场景,因为我是搞.NET的,所以用VS演示,当然也考虑其他的语言,是用SourceTree来演示。

因为有的图涉及前司,所以用了马赛克,但是不影响观看,如果需要视频,可以评论区留言。

1.创建分支

1.使用vs创建分支

image

1.右下角点击输入分支名称,选择【基于】,如果你想基于哪个分支开分支,开发就选择开发,测试就选择测试,uat就选择uat。

image

2.创建成功后可以看到已经在当前分支

image

2.使用sourceTree创建分支

1.切换到自己所在分支,选择【分支】按钮,在弹出的选择框中输入分支名称,这里比vs好的地方,就是要从哪个分支开就得切换过去,不会选错
image

2.创建完成后,会自动切换到对应分支,和vs不一样此时是没有推送的,要自己手动推送一下

image

2.删除分支

1.使用vs删除分支

1.切换到其他分支,选择需要删除的分支,右键点击删除,这个是直接就删除了
image

2.使用sourceTree删除分支

1.跟vs一样切换到其他分支,右键选择需要删除的分支,点击确定,选择删除,此时删除的是本地,勾选强制删除就是本地远程一起删除了
image

3.合并分支 (merge)

以将dev合并到master为例,首先我们要知道 什么叫合并分支?

通常就是把分支的代码往主干合,对主干的定义,我需要合到master,那此时对于分支来说,master就是主干,我需要合到Dev,那对于分支来说,Dev就是主干

怎么合并分支?

例如我开启了一个分支叫dev1,现在需要把dev1合并到master,那我们的做法是,切换到master分支,然后选择dev1分支,选择合并到当前分支,记住正常流程一定是分支往主干合,不要搞反了

1.使用vs合并分支

1.切换到master分支,右键选择dev1分支右键,在弹出的选项中选择【合并到Current Branch】

image

2.使用sourceTree合并分支

1.切换到master分支,右键选择dev1分支右键,在弹出的选项中选择【合并dev1到当前分支】

image

3.解决冲突

1.已经拉取了最新分支合并冲突,修改了同一个文件

2.没有拉取最新分支合并,说明你的主干代码在最新的后面,此时把分支往主干合并,就会提示

vs 提示

这个时候最好选择,【拉取】,不要选拉取然后推送(因为会拉取自动解决了冲突)他会自动推送了
image

1.点击拉取之后会有冲突
image

2.右键有冲突的文件,选择【合并】,也可以双击直接进到合并界面

  1. 选择合并或者双击默认加载的是3个文件块,分别是【别人的】【你的】【没改之前的】

  2. 选择比较传入项和传入的加载的是2个文件块,分别是【别人的】【你的】

  3. 选择比较当前项加载的是2个文件块,分别是【没改之前的】【你的】

  4. 选择比较传入的项加载的是2个文件块,分别是【没改之前的】【别人的】

默认是下面这样,记住顺序,合并的时候搞清楚

image

然后比较代码,选择合适的代码,不要一股脑的左边,或者右边,或者2边一起选

1.不清楚的没把握的在工作群里发出来,请求协助,不要偷懒,按照自己的理解选择
2.宁可丢自己也不要,弄丢别人的,被人吐槽代码都不会合,还写什么代码?
3.笨笨的方法,先把自己拷贝一份出来,再选择别人的,再把自己的一个一个粘进去

Source 提示

image

选择冲突的文件

image

右边区域有对应的文件信息

1.紫色 = 没改的,红色= 别人的,绿色是你自己的

通常选择冲突文件,右键选择解决冲突,我配置的是Beyond Compare,不要只选择【使用他人】,或者【我的版本】

image

image

没有vs那么强大,可以2边都选,建议步骤,先选右边,然后把左边的粘贴过来

4.销更改

1.回滚提交,但是会创建历史,已经推送的会有,未推送的建议直接reset

4.变基 (rebase)

没特殊要求,不搞这个因为对于新手来说,会搞的团队更加痛不欲生!

5.储藏(剥离)分支代码 (stash )

适用于你写到一半,有人跟你说,切下分支,不知道这个功能的时候,你自己先提交一下,或者copy一份代码,或者重新拉一个仓库?

小砾在dev1认真的写代码,同事让他看下另外一个分支有个bug,比较紧急,这个时候他一部分代码写到一半,直接切分支报错了,如果是你你怎么解决?

1.切换分支代码丢了算了?
2.用笨方法,打个压缩包备份,等下晚上加班,自己一点一点粘过来
3.再拉个仓库
4.......使用储藏-

vs储藏

点击全部提交小三角形,选择全部存储

image

上面修改的就出现在下面了,然后就可以切换其他分支了

image

需要的时候右键存储的选项,选择应用

image

sourceTree储藏

点击【储藏】在弹出的选项框输入一个名字,点击确定

image

需要的时候右键存储的选项,选择应用,就回来了

image

6.挑拣代码 (cherry-pick )

适用于特殊的提交,需要合并到指定分支,缺陷就是必须是单独的提交,如果多次提交就要挑拣多次了

小砾在dev1认真的写代码,同事分配了一个bug给他修复,但是他没有开分支,在dev1上直接提交了,现在那个bug要合到uat了,他又不想再改一遍,又不能直接将分支代码合过去,怎么办?
1.含泪将代码直接copy出来,在粘贴到指定的分支中去,1个还好,100个怎么办?我觉得现在很多人都是这样,我在知道这个东西之前,也是这样。

vs挑拣

1.切换到需要挑拣到的分支,我这里需要将dev1的提交,挑拣到master,窗口选择git,选择管理分支

image

2.在弹出的界面,单击dev1分支,在弹出的历史记录里面找到需要挑拣的提交,右键弹出的菜单,选择【挑拣】

image

3.如果被挑拣的代码和你目标分支有冲突,你依然需要解决冲突,完成挑拣

4.打开master分支,已经存在对应的提交

image

SourceTree 挑拣

1.切换到需要挑拣到的分支,我这里需要将test1的提交,挑拣到master,那就是切换到master

image

2.单击test,在右边出现的提交记录中,选择需要挑拣的提交,右键在弹出的下拉选项中,选择 【遴选】

image

3.有冲突一样解决,就ok

image

7.打补丁(patch)

跟挑拣差不多,但是是把单独的提交弄出来成一个补丁文件,然后应用

1.找到需要打成补丁的提交

image

image

2.生成的补丁文件

image

3.点击工具,选择应用补丁

image

8.打标签 (tag)

有新版发布,或者重要的节点,可以打tag

使用vs打标签

image

1.点击右下角,选择推送标签

image

使用sourceTree打标签

1.切换到目标分支,选择标签

image

2.在标签列表查看,然后推送到远程

image

9.如何PR (pull request)

适用于开了分支保护和一些开源中把分支合并流程化

1.以我们自己的私有git为例,找到合并请求tab

image

2.创建合并请求,选择对应选项,合并到哪里,从谁合过去

image


原文地址: https://www.cveoy.top/t/topic/qGFj 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录