5分钟入门git模式开发

qcloudcommunity · · 2455 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

> 本文由云+社区发表 > 作者:唐维黎 # 导语 基于gui工具TortoiseGit让你快速进入git开发模式。 ![img](https://ask.qcloudimg.com/draft/3246935/ijhmxkva8y.png?imageView2/2/w/1620) 目前项目已逐步从svn移步到git开发模式,其中也针对git统一协议了适合git的开发规范, 最重要一点就是**分支模型**的,为了规范开发,不直接在主干上修改代码,一切代码都提交至分支dev,然后再由分支合并到主干master。 首先保证每个仓库下有以下两个常驻分支(永远不删除的分支): **master:**主干分支,始终保持跟外网服务器一致,只用于外网发布,这样就可以保证文件不会带出去的风险; **dev:**基于master创建,用于开发新功能和新需求的分支。 # 开发流程如下: \1. 基于dev分支创建dev-xxx分支,开始进行普通的常规需求开发,开发完成后,Commit提交代码到本地仓库,如果这个新项目或者功能比较大有多人协同开发,怕会相互影响对方的代码,现从dev-xxx分支创建新分支dev-xxx-user进行开发,前提是dev-xxx分支需要push到线上; \2. 开发完成后将dev-xxx分支合并到dev分支,然后部署dev到测试环境进行测试,测试过程中有bug的话修复完后同样合并到dev分支。如果是在多人协同开发的情况下先将dev-xxx-user分支合并到dev-xxx,再将dev-xxx合并到dev分支; \3. 测试完成后,将dev分支合并到master分支,然后进行正式发布。发布完成后删除dev-xxx和dev-xxx-user分支; 如果担心在最后一步合并代码到master时有问题,也可以在测试的时候随时更新到本地master(先checkout master分支到本地),但不要push到线上,本地master 如果一定push到线上的话,这就要保证你的需求未测试发布前,别人不会发master与你相关的文件~ 另外,如果是外网BUG或者日常,就可以在master上直接创建分支,修复完成后发布,定时同步dev分支,这样可以提高效率 ~ 下面以一个简单的需求来实际操作下,看看TortoiseGit的使用方法: (前提本地是有安装git和TortoiseGit) ## 1. 克隆代码仓库到本地 在指定文件夹下,右键 -> Git Clone.. ![img](https://ask.qcloudimg.com/draft/3246935/beiq7cin3c.png?imageView2/2/w/1620) 点确定后会提示你输入用户名和密码,这个跟svn类似 然后等待一会代码就成功克隆到本地了,速度比svn要快很多,另外也可以直接用命令行的方式 ```javascript git clone XXXXX.git ``` ![img](https://ask.qcloudimg.com/draft/3246935/yyyw4m3wvc.png?imageView2/2/w/1620) **代码克隆后,后续分支都是在本地的同一份代码上进行分支创建,而无需再次克隆~** ## 2. 创建本地分支 创建分支前请实时git pull线上仓库到本地,保证本地dev是最新 进入刚克隆下来的目录,右键 -> TortoiseGit -> Create Branch.. ![img](https://ask.qcloudimg.com/draft/3246935/6bgy09o39w.png?imageView2/2/w/1620) ![img](https://ask.qcloudimg.com/draft/3246935/h5poooczp3.png?imageView2/2/w/1620) ## **3. 查看及切换当前分支** 右键 -> TortoiseGit -> Switch/Checkout... ![img](https://ask.qcloudimg.com/draft/3246935/gi9zxjnmiw.png?imageView2/2/w/1620) 切换成功后,可通过Git bash查看是否真的切换过来 ![img](https://ask.qcloudimg.com/draft/3246935/8dcfq2zjgy.png?imageView2/2/w/1620) 也可以在命令行直接git branch查看,高亮的为当前分支 重要:注意在开发的时候请保证当前自己所修改的代码是当前需求的分支 ## **4. 开发完成后Commit** 右键 Git Commit -> 'dev-xxx' 提交记录一定要填 ,其它信息可选 ![img](https://ask.qcloudimg.com/draft/3246935/67j3k1lrqv.png?imageView2/2/w/1620) Commit到本地仓库,Commit这里也可以直接一次性push到线上仓库,但一般情况下不会这么干, 在多人协作的时候,其他人要合并代码到dev-xxx分支时可以直接一键commit+push ## **5. 合并分支** 首先切换到要合并的目标分支(切换分支见上述3),本次要将dev-xxx合并到dev分支,我们切换到dev分支, 右键 -> TortoiseGit -> Merge... ![img](https://ask.qcloudimg.com/draft/3246935/bhzobzsdz1.png?imageView2/2/w/1620) ## **6. 提交到线上仓库** 右键 -> TortoiseGit -> Push... ![img](https://ask.qcloudimg.com/draft/3246935/ujpczzwo49.png?imageView2/2/w/1620) 会要求你输入用户名和密码 提交成功后,提单部署测试环境 ## 7. 合并到master主干分支 测试通过并完成后,将dev分支合并到master并push到线上仓库,提单发布外网, 合并到master的时候,可以将线上的master分支checkout到本地,然后进行本地的dev和master合并,再push到线上, 也可以直接将本地dev直接合并到线上master(remotes/origin/master)分支,本地合并冲突比较好解决,也不会影响线上。 ![img](https://ask.qcloudimg.com/draft/3246935/cig477mvuu.png?imageView2/2/w/1620) 到此本次需求完成 **此文已由腾讯云+社区在各渠道发布** **获取更多新鲜技术干货,可以关注我们[腾讯云技术社区-云加社区官方号及知乎机构号](https://www.zhihu.com/org/teng-xun-yun-ji-zhu-she-qu/activities)**

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

2455 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传