Git基础05:Git版本控制的最佳实践

本文翻译自git-tower.com

提交相关联的更新

一次提交,是有关联的更新的一个打包。比如,修复两个不同的bug,应该是两次提交。小型提交,使其他开发者更易理解那些更新。当出错时,也更容易回滚。
有了像暂存区域和暂存文件某部分的工具,git很容易的创建细粒度的提交。

经常性提交

经常提交能让你的提交更小,而且,再一次说,帮助你只提交有关联的更新。另外,它可以让你你更加频繁的跟其他人分享你的代码。那样,每个人更容易定期整合更新,避免合并冲突。相反,拥有少量的且巨大的更新,并且不经常分享,使得他人很难去解决冲突。

不要提交半成品

你只有当代码完成后才提交。这不意味着你在提交前必须完成一个完整的巨大的功能。恰恰相反:将功能的的实现分解成逻辑块,记得尽早提交和经常提交。但是,不要当离开办公室或一天结束时,把随便什么内容都提交到仓库。如果你仅仅因为你需要一个感觉的工作区(如切换分支,拉取更新等)需要临时提交,考虑使用Git的Stash功能作为替代。

在提交前测试代码

当想提交一些你“想当然的以为”已经完成的东西时,请抵制住诱惑。彻底的测试以保证它确实完成了,并且没有副作用(至少根据当前的情况判断)。当提交半成品到你本地仓库,你还能能自己原来自己;与推送/分享你代码给其他人相比,测试你自己的代码则更加重要。

编写优良的提交信息

在信息的开头,简要介绍这次更新(通常做法是至多50字),用一个空行与后续的主体分离。信息主体对于下述的问题应提供详细的回答:

  • 这次更新的动机是什么?
  • 与之前的实现有什么不同?

使用祈使句,现在时态(使用change,而不是changed或changes),与诸如git merge命令生成的提交信息一致。

版本控制不是一个备份系统

把你的文件备份到远程服务器上是一个版本控制系统非常好的附加应用。但是,你不应该像备份系统一样使用你的版本控制系统(VCS)。当进行版本控制时,你应该集中精力在语义上的提交(参考## 相关联的更新),你不应该只是填充文件。

使用分支

分支是Git最强大的功能之一,并且这并非偶然:快速易用的分支功能从一开始就是核心需求。分支是帮助我们避免混淆开发过程中不同支线的完美工具。你应在你的开发工作流程中广泛使用分支,诸如功能,修复缺陷,新想法….

统一的工作流程

Git可以让你选取诸多不同的工作流程,长期运行的分支(long-running branches),置顶分支(topic branches),合并或变基,git-flow…,你的选择取决于几个个因素:你的项目、整体的开发工作和工作流,以及(可能是最重要的因素)你和你的小伙伴的个人喜好。不管怎样,一旦你选取了一个工作流,你就要确保每个人的工作都能与此工作流程保持一致。

帮助以及文档

通过命令行获取帮助

1
$ git help <command>

在线资源

git官方网站
http://www.git-scm.com/
免费在线资源
http://www.git-tower.com/learn
http://rogerdudler.github.io/git-guide/
http://www.git-scm.org/book

时间: 2024-10-30 19:21:28

Git基础05:Git版本控制的最佳实践的相关文章

Git基础 3 ---- Git 初始化及仓库创建

 1 Git基础设置    1 设置用户名       git config --global user.name "用户名"           2 设置用户邮箱       git config --global user.name "邮箱"                  3 查看设置       git config --list         2 Git 获取帮助      1 获取命令帮助         git help              

Git基础 2 ---- Git简介

 一 Git简介     1 Git是一个分布式的版本控制系统     2 Git的最初的开发是为了取代BitKeeper,由Linux的创始人linus开发的用来管理Linux内核代码的     3 Git的优点        1 速度        2 简单的设计        3 对非线性开发模式的强大支持,即允许上千个并行的分支        4 有能力管理类似Linux内核这种强大的项目  1 Git的原理     1 GIt的原理是保存快照,而非区别           2 我们来解

【git学习五】git基础之git分支

1.背景                最早用github的时候,我傻傻的问舍友大神,git里面的branch是干什么的,他用了很直白的解释,我至今还记得."branch就是你可以自己建立一个分支,随便乱搞而不影响整个项目".git分支应该是git最nb的特色吧,分支的建立和合并都十分方便.               大体的原理是这样的(图借用progit),比如说我们有一个master,还有一个分支是testing,git用head指针标记哪个分支正在被执行操作. 2.分支管理  

【git学习四】git基础之git为项目打标签

1.背景           今天学习了下如何给项目打标签,为此项目的修改标记版本号,然后可以直接推送版本号到服务器上,方便了很多,而且便于对项目进行管理. 2.打标签                  1.查询已有标签,可以使用git tag命令,查询某个特定版本可以git tag -l 'v*' git tag         2.为版本创建标签 git tag -a v1.4 -m 'my version 1.4'      3.查看添加的标签,git show命令 git show  

【git学习三】git基础之git管理远程仓库

1.背景                git管理远程仓库,本文以github为例. 2.管理远程仓库                 1.本地ssh认证,在github建立一个repo叫做ospaf-GetWordFre            2.添加远程仓库,可以用git remote 命令实现,o是仓库名,可以用git remote -v查看 git remote add o git://github.com/jimenbian/ospaf-GetWordFre.git      3.接着

Git基础笔记(便查阅)

起步 三种状态 三种状态 已修改 modified 已暂存 staged 已提交 commited 三种工作区域 本地仓库 woking directory 暂存区域 staging area git工作目录 git directory 配置 权限的作用范围 所有用户 etc/gitconfig git config --system .. 当前用户 ~/.gitconfig git config --global .. 当前文件 .git/config git config .. 用户信息 g

Git Flow—Git团队协作最佳实践

一.规范的Git使用 Git是一个很好的版本管理工具,不过相比于传统的版本管理工具,学习成本比较高. 实际开发中,如果团队成员比较多,开发迭代频繁,对Git的应用比较混乱,会产生很多不必要的冲突或者代码丢失等. 就像代码需要代码规范一样,使用Git进行代码管理同样需要一个清晰的流程和规范, Git Flow就是一个被广泛认可的Git使用最佳实践. Git Flow是Vincent Driessen提出的一个分支管理的策略,http://nvie.com/posts/a-successful-gi

Home Contact Gallery RSS Git 在团队中的最佳实践--如何正确使用Git Flow

我们已经从SVN 切换到Git很多年了,现在几乎所有的项目都在使用Github管理, 本篇文章讲一下为什么使用Git, 以及如何在团队中正确使用. Git的优点 Git的优点很多,但是这里只列出我认为非常突出的几点. 由于是分布式,所有本地库包含了远程库的所有内容. 优秀的分支模型,打分支以及合并分支,机器方便. 快速,在这个时间就是金钱的时代,Git由于代码都在本地,打分支和合并分支机器快速,使用个SVN的能深刻体会到这种优势. 感兴趣的,可以去看一下Git本身的设计,内在的架构体现了很多的优

rdc最佳实践之开发模式——git flow

引子 今天新建项目的时候,发现rdc除原有的分支模式以外还增加了master分支开发模式和git flow模式,这是一件非常令人欣喜的事情--毕竟git flow是一个流传已久的,大家都普遍接受的开发模式. 于是我就把应用删掉了,改用git flow模式,目前体验很完美.鉴于很多人可能还不太了解git flow,本文就对此分享一些微小的经验. 前言 你会用git吗? 我相信在座的大多数人都会自信的回答:"会".而实际上,大家可能从来没有考虑过自己的用法是否真的科学,真的健壮,尤其是项目