GIT & REPO & GERRIT (一)

在软件项目中,代码管理是一件相当重要的事情。想象一下Google做Andoird系统没有一个强有力的代码管理系统会是怎么样:那肯定是一团糟。那Google是如何管理整个Android系统的代码的呢?Google的工程师们在仔细分析研究过后,选择了GIT作为代码管理的工具,并以GIT为基础,在此之上开发了REPO和GERRIT。使用这三个工具,总加上恰当的流程,Android的代码便被管理的井井有条。

如果要在这样一个代码管理的环境中来提交一个代码改动,大概流程这样:
  1. repo init xxx初始化
  2. repo sync xxx同步要改动的项目
  3. 在该项目下面repo start xxx新建一个本地分支
  4. 做好改动以后git commit本地提交改动
  5. repo upload xxx将改动上传,等别人通过gerrit review
  6. review如果有需要改动的地方,那本地改好后,git commit --amend来保存新的修改
  7. repo upload 将新的改动上传
  8. 重复5-7步,直到review通过,然后merge改动,完毕

(更多信息请参考:http://source.android.com/source/developing.html)

下面简单介绍一下这三个工具,它们三个都是免费且开源的工具。

GIT
它是一个相当优秀的分布式代码管理工具,目前为止,已经有很多优秀的项目是通过它来管理的。它并不是个看起来华丽的工具,但它很有内涵丰富。它有很多优点,诸如超强非线性开发支持,分布式仓库,仓库易发布,有效管理大型项目,垃圾回收,等等等等,有兴趣的请具体参考:http://en.wikipedia.org/wiki/Git_(software)。我只想说说我的感受:
  • 速度快:代码仓库全在本地,各种操作都相当的效率。
  • 非常灵活:你可以随心所欲的改代码,而且可以很容易的保存任何阶段你想要保存的成果。
  • 分支方便:写代码的时候,你经常需要做各种尝试,临时分支可以给你最大的支持。
  • GITK:非常方便的查询当前分支的历史树。
  • 好用:熟悉各种GIT命令以后,你可以随心所欲的操纵代码。
当然,它也并不是完美的:
  • 学习成本略高。要想用好GIT,首先要学会以GIT的方式思考,然后还要熟悉其命令行操作。
  • 一个代码仓库不适合管理多个项目。
GIT的官方网站:http://git-scm.com/
GIT的网页参考:http://gitref.org/

REPO
repo是一个基于GIT的工具,它的主要目的是为了管理多个代码仓库,也就是多个GIT。然后它里面还加入了一些其他的方便开发的功能,比如帮助上传代码到Rerrit上面Review。它本身是用Python写出来的一个小工具。

要完全搞清楚repo的工作流程并不是一件很容易的事情,因为对于绝大多数软件工程师来说,都很少会遇到像管理Android整个系统如此庞大的软件项目。我们假设Office(Word,PPT,Excel)的开发是由这套代码管理工具来进行管理的(当然微软肯定有自己的代码管理工具的)。那么情况就是这样的:
Word,PPT,Excel都是单独的一个GIT,而我们用一个XML文件来记录这三个GIT仓库的情况,然后我们再用一个GIT把这个XML文件的版本管理起来,然后repo就会基于这个XML文件来管理这三个GIT。
那么我们需要发布Office1(Word1,PPT1,Excel1)的时候,我们就创建一个repo分支,实际上就是创建一个XML的分支出来,那么这个分支里面的XML就指定了这三个子项目各自的版本信息。当我们需要发布Office2的时候,我们又可以创建另一个分支。这样,整个Office项目就被有效的管理起来了。而每个子项目也有本身充足的灵活性。

当然,想要靠这么一个简单的例子就想弄明白repo的工作原理还是比较困难的,但先留个印象,以后回过头来看说不定就清楚了。

repo这个工具的代码是托管在Google code上面的:https://code.google.com/p/git-repo/

Gerrit
这个是个基于网页的代码review工具,也是基于GIT的一个工具。GIT本身是个分布式的版本控制工具,Gerrit作为一个强大的review工具的同时,也加强了GIT集中化管理代码的能力,与GIT的配合可以说恰到好处。由于这个是个网页工具,用用就知道怎么回事了,注意他是基于GIT的,其他就没什么太多好说的。

Gerrit目前是托管在Google code上面的:http://code.google.com/p/gerrit/
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Git是一个版本控制系统,用于管理代码的版本和变更历史记录。 Repo是一个用于管理多个Git仓库的工具,它可以帮助我们在一个项目中管理多个Git仓库。 Gerrit是一个基于Git的代码审查工具,它可以帮助团队进行代码审查和管理。 因此,Git是RepoGerrit的基础,Repo可以帮助我们管理多个Git仓库,而Gerrit则是在Git基础上提供了代码审查和管理功能。 ### 回答2: Git、RepoGerrit是现代软件开发中常用的三个工具,它们分别以不同的方式协助开发人员团队协同开发代码并进行版本管理,以提高软件开发过程的效率、质量和协作性。 Git是一个分布式版本控制系统,通过追踪文件的修改历史记录,协助开发人员管理和维护代码库。Git将整个代码库克隆到本地,并允许开发人员进行分支、合并、撤销等操作来管理代码。因为是分布式的,所以多人在不同的地方进行 code review、code merge 时也很方便。 Repo是Google开发的多仓库代码管理器,它在Git上构建了一个额外的抽象层,用于管理多个Git代码库。它能够使开发人员更方便地在多个设备和分支之间同步代码,同时也提供了一些额外的工具来管理代码,如自动同步、自定义提交消息等。 Gerrit则是一个用于代码评审的工具,它通过提供集中式评审流程来协助开发人员进行代码审核和版本控制。Gerrit 通常作为 Git 代码管理系统与 GitLab、GitHub、Bitbucket 等代码托管系统间的桥梁,它作为一个独立的服务器存在,接收提交请求并提供一个 Web 界面给其他开发人员进行评审,更适合大规模项目。 为了方便多人协作,Git往往会被集成到代码管理工具(如GerritGitHub、GitLab)中。因此,开发人员可以使用一个集成了Git功能的工具在同一个代码库内进行开发和版本管理,同时集成Gerrit方便多人协作和代码评审。Repo作为多仓库代码管理器则可使开发人员更方便地同步和管理多个 Git 代码库。 总之,Git、RepoGerrit是三个有用的工具,多个工具组合使用可加快软件开发的速度、提升代码开发质量和协同效率。它们的使用需要结合具体的情况和项目需求来综合决定。 ### 回答3: Git是一个分布式版本控制系统,它的主要作用是帮助开发人员管理软件开发的历史记录和版本控制。它的主要特点是分布式、高效、可靠、灵活等。 Repo是Google开发的一个基于Git的多仓库管理工具,它可以帮助团队更好地组织和管理多个Git仓库,并提供一些便捷的操作方式。Repo可以使团队协作更为高效,避免因为Git仓库数量过多而造成的管理困难。 Gerrit是一个基于Git的代码评审工具,它主要用于开源项目的代码评审和合并。Gerrit提供一个Web界面,让团队成员可以通过Web浏览器进行代码评审和更改审核。通过Gerrit,开发人员可以更好地协同式开发,提高代码质量和工作效率。 在开发过程中,Git作为基础的版本控制系统,Repo可以帮助团队更好地管理多个Git仓库,Gerrit则是在代码评审、审核和代码合并方面提供方便和支持的工具。可以说,Git、RepoGerrit三者之间是相互补充、相互支持的关系。Git提供基础的版本控制功能,Repo可以更好地管理多个Git仓库,Gerrit则提供方便的代码评审、审核和合并功能。综上所述,这三个工具在软件开发中起到了非常重要的作用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值