Git实战覆盖98%日常开发场景

Git实战覆盖98%日常开发场景 使用vs创建分支1.右下角点击输入分支名称选择【基于】如果你想基于哪个分支开分支开发就选择开发测试就选择测试uat就选择uat。2.创建成功后可以看到已经在当前分支2.使用sourceTree创建分支1.切换到自己所在分支选择【分支】按钮在弹出的选择框中输入分支名称这里比vs好的地方就是要从哪个分支开就得切换过去不会选错2.创建完成后会自动切换到对应分支和vs不一样此时是没有推送的要自己手动推送一下2.删除分支1.使用vs删除分支1.切换到其他分支选择需要删除的分支右键点击删除这个是直接就删除了2.使用sourceTree删除分支1.跟vs一样切换到其他分支右键选择需要删除的分支点击确定选择删除此时删除的是本地勾选强制删除就是本地远程一起删除了3.合并分支 (merge)以将dev合并到master为例首先我们要知道什么叫合并分支通常就是把分支的代码往主干合对主干的定义我需要合到master那此时对于分支来说master就是主干我需要合到Dev那对于分支来说Dev就是主干怎么合并分支例如我开启了一个分支叫dev1,现在需要把dev1合并到master那我们的做法是切换到master分支然后选择dev1分支选择合并到当前分支记住正常流程一定是分支往主干合不要搞反了1.使用vs合并分支1.切换到master分支右键选择dev1分支右键在弹出的选项中选择【合并到Current Branch】2.使用sourceTree合并分支1.切换到master分支右键选择dev1分支右键在弹出的选项中选择【合并dev1到当前分支】3.解决冲突1.已经拉取了最新分支合并冲突修改了同一个文件2.没有拉取最新分支合并说明你的主干代码在最新的后面此时把分支往主干合并就会提示vs 提示这个时候最好选择【拉取】不要选拉取然后推送因为会拉取自动解决了冲突他会自动推送了1.点击拉取之后会有冲突2.右键有冲突的文件选择【合并】也可以双击直接进到合并界面选择合并或者双击默认加载的是3个文件块分别是【别人的】【你的】【没改之前的】选择比较传入项和传入的加载的是2个文件块分别是【别人的】【你的】选择比较当前项加载的是2个文件块分别是【没改之前的】【你的】选择比较传入的项加载的是2个文件块分别是【没改之前的】【别人的】默认是下面这样记住顺序合并的时候搞清楚然后比较代码选择合适的代码不要一股脑的左边或者右边或者2边一起选1.不清楚的没把握的在工作群里发出来请求协助不要偷懒按照自己的理解选择2.宁可丢自己也不要弄丢别人的被人吐槽代码都不会合还写什么代码3.笨笨的方法先把自己拷贝一份出来再选择别人的再把自己的一个一个粘进去Source 提示选择冲突的文件右边区域有对应的文件信息1.紫色 没改的红色 别人的绿色是你自己的通常选择冲突文件右键选择解决冲突我配置的是Beyond Compare不要只选择【使用他人】或者【我的版本】没有vs那么强大可以2边都选建议步骤先选右边然后把左边的粘贴过来4.销更改1.回滚提交但是会创建历史已经推送的会有未推送的建议直接reset4.变基 rebase没特殊要求不搞这个因为对于新手来说会搞的团队更加痛不欲生5.储藏剥离分支代码 stash 适用于你写到一半有人跟你说切下分支不知道这个功能的时候你自己先提交一下或者copy一份代码或者重新拉一个仓库小砾在dev1认真的写代码同事让他看下另外一个分支有个bug比较紧急这个时候他一部分代码写到一半直接切分支报错了如果是你你怎么解决1.切换分支代码丢了算了2.用笨方法打个压缩包备份等下晚上加班自己一点一点粘过来3.再拉个仓库4.......使用储藏-vs储藏点击全部提交小三角形选择全部存储上面修改的就出现在下面了然后就可以切换其他分支了需要的时候右键存储的选项选择应用sourceTree储藏点击【储藏】在弹出的选项框输入一个名字点击确定需要的时候右键存储的选项选择应用就回来了6.挑拣代码 (cherry-pick )适用于特殊的提交需要合并到指定分支缺陷就是必须是单独的提交如果多次提交就要挑拣多次了小砾在dev1认真的写代码同事分配了一个bug给他修复但是他没有开分支在dev1上直接提交了现在那个bug要合到uat了他又不想再改一遍又不能直接将分支代码合过去怎么办1.含泪将代码直接copy出来在粘贴到指定的分支中去1个还好100个怎么办我觉得现在很多人都是这样我在知道这个东西之前也是这样。vs挑拣1.切换到需要挑拣到的分支我这里需要将dev1的提交挑拣到master窗口选择git选择管理分支2.在弹出的界面单击dev1分支在弹出的历史记录里面找到需要挑拣的提交右键弹出的菜单选择【挑拣】3.如果被挑拣的代码和你目标分支有冲突你依然需要解决冲突完成挑拣4.打开master分支已经存在对应的提交SourceTree 挑拣1.切换到需要挑拣到的分支我这里需要将test1的提交挑拣到master,那就是切换到master2.单击test在右边出现的提交记录中选择需要挑拣的提交右键在弹出的下拉选项中选择 【遴选】3.有冲突一样解决就ok7.打补丁patch跟挑拣差不多但是是把单独的提交弄出来成一个补丁文件然后应用1.找到需要打成补丁的提交2.生成的补丁文件3.点击工具选择应用补丁8.打标签 (tag)有新版发布或者重要的节点可以打tag使用vs打标签1.点击右下角选择推送标签使用sourceTree打标签1.切换到目标分支选择标签2.在标签列表查看然后推送到远程9.如何PR (pull request)适用于开了分支保护和一些开源中把分支合并流程化1.以我们自己的私有git为例找到合并请求tab2.创建合并请求选择对应选项合并到哪里从谁合过去