版本控制之最佳实践(Git版)
现如今,应该每个开发者都在使用版本控制工具了吧。然而,如果你理解版本控制的基本规则,你便能更好地发挥它的效用。在此,我们汇总了一些最佳实践,希望你在使用Git做版本控制时能够了然于心、得心应手。
1. 相关的改动才放一起提交
一次提交(git commit)应该只包含相关的改动。比如说,修复两个不同的bug就应该分开来做两次提交。提交的改动越小(或越少),其他开发者理解起来就越容易;如果改动有问题,退回去也比较方便。Git有一个暂存区域(staging area)的概念,它还允许你暂存文件的某些部分,这更便于你创建非常细粒度的提交。
2. 经常性地提交
经常提交势必让你每次提交的东西都很少,也有助于你只提交相关的改动。并且,你还能更频繁地与别人共享代码。通过这种方式,所有人在集成代码时都会感觉更轻松,也就能避免一些不必要的冲突。相比之下,如果每次提交的东西很多、改动很大、时间间隔很长,那么在代码合并(merge)过程中产生的冲突就很难解决了。
3. 别提交半成品
你应该只在完工之后才提交。这并不是逼你把一个大块头功能完整实现好之后再提交。恰恰相反!你应该把大功能的实现分解成合乎逻辑的小块工作,并且记住要早一些、经常性地提交你的代码。只是要切忌为了提交而提交,比如在下班离开公司之前把一些东西仓促放入仓库中。如果你这么做只是为了从服务器抓取一份干净的代码(git checkout <branch>或者git pull),可以考虑使用Git的“Stash”功能。
4. 提交之前必须测试
你“认为”已经完工了,然后就可以提交了吗?千万要抵得住这种诱惑!你应该进行全面的测试,以确保你真的是“完工”了,并且(在你能够识别的范围内)没有副作用。尽管将半成品提交到本地仓库不伤大雅(原谅你的庸人自扰),但当你把代码推送(git push)到服务器与别人共享时,这个问题就大了——在这之前,请务必测试你的代码!
5. 提交时须带上适当的描述
在描述的开头部分,你应该简单总结一下你所做的改动(别超过50个字)。然后,用一个空行将开头与主体部分隔离开来。在主体部分,你应该详细回答这些问题:为什么要做这次改动?跟以前的实现有什么不一样?请使用祈使语气和现在时态(比如,要使用“change”这个单词,而不用使用“changed”或“changes”),为的是与像git merge这样的命令自动产生的描述保持一致。
6. 版本控制有别于备份系统
把你的文件备份到远程的服务器上是版本控制系统的一个不错的副作用。但是,你不应该只把版本控制当备份系统来使用。版本控制追求的是每次提交的意义(请回过去阅读第一条:把相关的改动放在一次提交里)——你不应该填鸭式地塞入一堆毫不相干的文件。
7. 使用分支
分支是Git最强大的功能之一。这并不是偶然的——从一开始,简单、快速创建分支的能力就是对Git的一个核心需求。使用分支能够有效地避免不同开发工作之间的相关干扰。你应该在开发过程中广泛使用分支,它可以用于开发新功能、修复bug、试验新的想法……
8. 采用一致的工作流程
Git允许你采纳很多种不同的工作流程:持久存在的分支、主题分支、合并或复位、Gitflow(点我!)……你到底应该选择哪一种呢?这取决于几个因素:你的项目,开发与部署的整体流程,还有(可能是最重要的)就是大家的个人偏好。不管你们选择哪种工作流程,请确保团队中的每个人都对工作流程有相同的理解并且严格遵循。
原文链接:http://www.git-tower.com/learn/version-control-best-practices.html
版本控制之最佳实践(Git版)相关推荐
- Git最佳实践(init、config、status、add、commit、diff、push) 1.0v
Git最佳实践 工程设计领域中使用版本控制来管理工程蓝图的设计过程,在IT开发过程中借鉴了版本控制思想管理代码的版本迭代. Git是一个开源的分布式版本控制系统,最初由Linus Torvalds创作 ...
- git最佳实践_Git最佳实践如何为我节省大量的返工时间
git最佳实践 by Hemal Patel 通过赫马尔·帕特尔 Git最佳实践如何为我节省大量的返工时间 (How Git best practices saved me hours of rewo ...
- 大型开发项目中 git 工作流的最佳实践
Gitflow Workflow 是一个 Git 工作流,有助于持续软件开发和实施 DevOps 实践. 它由文森特·德里森 (Vincent Driessen) 在 nvie 首次出版并广受欢迎. ...
- git拉取tag代码_10年经验17张图带你进入gitflow企业项目代码版本管理的最佳实践...
前言 对于项目版本管理,你是否存在这样的痛点:项目分支多而杂不好管理,git log界面commit信息错乱复杂无规范,版本回退不知道选择什么版本合适--. 项目版本管理的最佳实践系列,笔者将以两篇文 ...
- [专栏精选]Unity中的Git最佳实践
本文节选自洪流学堂公众号技术专栏<大话Unity2018>,未经允许不可转载. 洪流学堂公众号回复专栏,查看更多专栏文章. 小新:"我昨天尝试了一下使用Git来管理Unity项目 ...
- Git Flow—Git团队协作最佳实践
一.规范的Git使用 Git是一个很好的版本管理工具,不过相比于传统的版本管理工具,学习成本比较高. 实际开发中,如果团队成员比较多,开发迭代频繁,对Git的应用比较混乱,会产生很多不必要的冲突或者代 ...
- 《深入理解Java虚拟机 - Jvm高级特性与最佳实践(第三版)》阅读笔记
<深入理解Java虚拟机>阅读笔记 本repository为<深入理解Java虚拟机 - Jvm高级特性与最佳实践(第三版)>阅读笔记,因为第一章主要讲的是Java的发展历史, ...
- Git工作流程最佳实践总结
Git作为一个目前非常流行的版本管理工具,深受开发者的喜爱.那么怎样才能将Git的作用发挥的更好呢?我根据实际的项目经验,归纳总结了以下Git工作流的最佳实践.这里所谓的最佳,是经过多次项目经验后,根 ...
- Git 最佳实践:分支管理
5月份,为统一团队git分支管理规范,刚开始准备自己写,在网上搜了下,发现不少不错的git分支管理实践.最后我为团队选择了这个git分支管理实践 A successful Git branching ...
最新文章
- Gson:我爸是 Google
- jquery 设置checkbox的checked属性 总是出问题
- 还在担心服务挂掉?Sentinel Go 让服务稳如磐石
- UDP协议抓包分析 -- wireshark
- vs2012 boost配置
- 使用Go开发gRPC
- 如何获取服务器的地理位置,如何获取Restify服务器的确切IP地址进行监听?
- elasticsearch 报表统计_螺丝ERP销售管理系统,螺丝企业专业管理统计
- 新拟物素材|时髦iOS 主屏幕图标
- IBM Bluemix计划于2017年下半年在云资源中引入英特尔3D XPoint
- 一个通用的Makefile模板-转
- 深圳礼品展上新“缤纷食品馆” 解锁员工福利新场景
- 随机指标计算机程序,MACD/随机指标组合应用分析
- java的HMACSHA1加密算法
- Java虚拟机 --- JVM
- Android模拟器的下载与安装(Windows)
- GPIO口配置为上拉,下拉输入
- 关于杨创YC2440uboot移植
- java基础入门第二版二手,细节爆炸
- tinymce 字体样式_谷歌字体和TinyMCE