网站首页 > 技术文章 正文
现在越来越多的程序员使用git作为代码管理工具,git作为代码工具的好处非常显而易见,比如说速度快呀,更加容易协同开发等等。但是也有一些人会觉得git比较难以上手,今天我们来讲一讲一个程序员日常开发中一个常见的例子,给大家介绍一个git的小技巧,让大家更好地进行使用。
我们都知道,git的很多操作都是基于分支级别的,到了上线的时候,我们需要把代码合并到主干当中,然后进行发布。通常,我们可能在一个功能开发分支上开发了好几个功能,但是因为某些关系,例如需求变更呀,老板不喜欢之类的原因,有些功能不能上线,或者有些功能需要提前上线(毕竟产品经理的嘴,骗人的鬼),这个时候,就很痛苦了,因为git默认是进行整个分支的合并,而不能指定若干的文件,这可怎么办呢?
我们可以使用下面这个git的小技巧,进行合并指定的若干文件。假如我们要将branch dev中的若干文件合并到上线分支 branch online中,我们可以这么做。
首先,我们拉取dev分支,并且,merge合并下online分支,dev分支上面的代码与online分支版本一致。特别要注意的是,如果online分支与dev分支都对同一个文件有操作,那么一定要进行这一步操作,否则,会将dev上面的文件直接覆盖线上分支文件,造成不可预估的问题。
然后,我们切换到线上分支,从online分支上,拉取出一个新的分支,我们称之为temp分支,并切换到temp分支上。命令如下所示:git checkout -b online_temp。
紧接着,我们可以把dev分支上,想要合并进主干的分支checkout到online_temp分支上,命令如下所示:git checkout dev <目标文件夹或目标文件名>。
最后我们将对应的文件进行提交,然后切换到online分支上,将online分支与online_temp分支进行合并,就能够完成了我们想要的操作。
可能你会问,这种小技巧除了合并指定的文件跟文件夹,还有没有其他作用呢?当然有,举个简单的例子,我们可以利用这个小技巧,线上代码合成工具,特别是大公司,大团队,可能同时有多个人在同一个分支上面进行开发,如果每次都进行整个分支的上线,就比较危险,我们可以做一个页面工具,每次勾选指定的文件,开发可以在页面上进行codevreview等相关工作,最后完成功能的上线,可以大大的减少故障的发生。欢迎大家关注我,共同学习,共同进步。大家的支持是我继续唠嗑的动力。同名公众号(沙茶敏碎碎念)
猜你喜欢
- 2024-10-27 git 入门教程之紧急修复(git checkout . 恢复)
- 2024-10-27 项目版本管理的最佳实践:飞流Flow篇
- 2024-10-27 DevOps(4)之分支模型(ps4如何构建画布)
- 2024-10-27 Git 在团队中的最佳实践——如何正确使用Git Flow
- 2024-10-27 鹅厂程序员干货分享 | 四种工作流,教你如何使用 GitHub
- 2024-10-27 Linux下git和github搭建使用教程(linux搭建git仓库)
- 2024-10-27 Git实战002:Git快速入门使用详解(git简单教程)
- 2024-10-27 git 多人在同一分支上迭代开发时,如何保证分支提交历史保持线性
- 2024-10-27 Git基础知识(七)--分支开发工作流
- 2024-10-27 Git分支规范(git新建分支)
- 11-26Win7\8\10下一条cmd命令可查得笔记本电脑连接过的Wifi密码
- 11-26一文搞懂MySQL行锁、表锁、间隙锁详解
- 11-26电脑的wifi密码忘记了?一招教你如何找回密码,简单明了,快收藏
- 11-26代码解决忘记密码问题 教你用CMD命令查看所有连接过的WIFI密码
- 11-26CMD命令提示符能干嘛?这些功能你都知道吗?
- 11-26性能测试之慢sql分析
- 11-26论渗透信息收集的重要性
- 11-26如何查看电脑连接过的所有WiFi密码
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)