`
wayfarer
  • 浏览: 294640 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Git

阅读更多

1. 定义

Git是Linus Torvalds(Linux内核创始人)为了帮助管理Linux内核开发而开发的一个开放源码的分布式版本控制软件 ,它不同于Subversion、CVS这样的集中式版本控制系统 在集中式版本控制系统中只有一个仓库(repository),许多个工作目录(working copy),而像Git这样的分布式版本控制系统中 (其他主要的分布式版本控制系统还有Mercurial、GNU Arch、SVK等),每一个工作目录都包含一个完整仓库 ,它们可以支持离线工作,本地提交可以稍后提交到服务器上。分布式系统理论上也比集中式的单服务器系统更健壮,单服务器系统一旦服务器出现问题整个系统就不能运行了,分布式系统通常不会因为一两个节点而受到影响。
因为Android是由kernel、Dalvik、Bionic、prebuilt、build等多个Git项目组成,所以Android项目编写了一个名为Repo的Python的脚本来统一管理这些项目的仓库,使得Git的使用更加简单。

 

2. 相比Subversion的优势
(1)更方便的 Merge
分布式管理必然导致大量的Branch和Merge操作,因此分布式版本控制系统都特别注意这方面。在传统的CVS里面制作Branch和Merge简直就是噩梦,Subversion 作为一个用于替代CVS的系统,专门改进了Branch操作。然而似乎人们没有注意到,Branch是轻松了,可是Merge呢?如果不能很方便地Merge回来,做Branch仍然是噩梦。事实上,我就经历过在开发团队里面由于队友操作不对而在Merge的时候把我的许多代码都覆盖掉了。当时正是使用的subversion。虽然源代码仍然在历史里面,但是要去一个一个地找出被覆盖掉的文件并恢复过来确实是一件很难忘的事情。
(2)更方便的管理
传统的版本控制系统使用中央仓库,仓库相关的管理就只能在中央仓库上进行。赋予开发团队每一个人中央仓库的管理权限是非常不好的
(3)更健壮的系统
分布式系统一般情况下总是比单服务端的系统要健壮,因为单服务端一旦服务器挂掉了整个系统就不能运行了。然而分布式系统通常不会因为一两个节点而受到影响。
(4)对网络的依赖性更低
虽然现在网络非常普及,但是并不是随时随地都有高速网络。低速的网络会让人心情烦躁,有时候就呆呆地盯着屏幕上的commit进度什么事情也干不了。而没有网络连接更是致命的:你无法commit!这表示你进行任何改动以前都必须小心翼翼,否则你可能再也找不会你曾经写的一些代码了。
(5)更少的“仓库污染”
有时候你要做一个模块,它不是太大,所以没有必要为它新建一个 branch ,但是它又不是那么小,不可能一次提交就做好。于是便会提交一些不完整的代码到仓库,有时候会导致整个程序无法运行,严重影响团队里其他人的开发。大多数人在这种情况下的解决办法都是写完之后再提交。但是作为习惯了版本控制的人来说,进行不计后果的大幅修改是经常的事情,到后来突然发现自己先前的代码没有提交,就后悔莫及了。如果是分布式系统的话就不会存在这样的问题,因为本地仓库的修改不会影响到别人的仓库。当你完成并测试以后,就可以在邮件列表里面说:我已经把这个模块做好了。然后感兴趣的人就可以从你这里pull你的成果了。

 

3. 下载android源码

http://rubynroll.iteye.com/blog/203133

http://www.iteye.com/topic/476635

http://www.williamhua.com/2009/04/29/git-and-repo-for-dummies/

http://ghostsun.iteye.com/blog/352721

分享到:
评论

相关推荐

    最新Git与Github首篇巨作课程 Git&Github极速入门与攻坚实战结合课程 一次搞定Git.txt

    Git与Github教程详细介绍了Git的工作机制,Git命令行的基础学习,Git-Eclipse和Nginx的准备工作,Git与Github分支体系,Git与Github的远程和本地工作原理,Git与Github克隆实战和最后的课程精华总结部分,可以帮助...

    Git权威指南PDF完整版

    Git权威指南 目 录 前 言 第1篇 初识Git 第1章 版本控制的前世和今生/ 2 1.1 黑暗的史前时代/ 2 1.2 CVS—开启版本控制大爆发/ 5 1.3 SVN—集中式版本控制集大成者/ 7 1.4 Git—Linus 的第二个伟大作品/ 9 第2章 ...

    GitKraken中文语言包

    GitKraken中文语言包 目前支援版本: 8.7.0 至 Release 下載 strings.json 取代檔案 Windows: %LOCALAPPDATA%\gitkraken\app-8.7.0\resources\app.asar.unpacked\src\strings.json Mac: /Applications/GitKraken.app/...

    Professional Git [2017]

    Professional Git English | 6 Jan. 2017 | ISBN: 111928497X | 480 Pages | AZW3/MOBI/EPUB/PDF (conv) | 39.67 MB Professional Git takes a professional approach to learning this massively popular ...

    git 2.7.3 for windows 64bit

    Git for Windows 2.7.3 发布了。 新特性: Git for Windows now ships with the Git Credential Manager for Windows. bug修复: We now handle UTF-8 merge and squash messages correctly in Git GUI. When ...

    Git教程by廖雪峰.pdf

    因为我在学习Git的过程中,买过书,也在网上Google了一堆Git相关的文章和教程,但令人失望的是,这些教程不是难得令人发指,就是简单得一笔带过,或者,只支离破碎地介绍Git的某几个命令,还有直接从Git手册粘贴帮助...

    Git介绍与使用-培训专用课程PPT

    1、Git介绍和使用教程,主要针对新手入职快速自学git的使用,也可供大佬面向学校或者公司培训使用,根据多年经验总结和整理出来的课程,上手工作使用的git知识这里全都有,如果是想用来制作自己的培训课程的话,简单...

    Git-2.42.0-64-bit-windows安装版

    Git是目前非常流行的分布式版本控制系统,由Linus Torvalds为Linux内核开发而创建,该资源包含 Git-2.42.0-64-bit-windows安装版,仅供学习,下载后请及时删除 Git是目前非常流行的分布式版本控制系统,由Linus ...

    Git-1.9.0 git

    git

    Git中文学习手册 Git入门

    1 2 Git 简史 1 3 Git 基础 1 4 安装 Git 1 5 初次运行 Git 前的配置 1 6 获取帮助 1 7 小结 2 Git 基础 2 1 取得项目的 Git 仓库 2 2 记录每次更新到仓库 2 3 查看提交历史 2 4 撤消操作 2 5 远程仓库的...

    Git-2.30.2-32-bit.exe.zip(免积分)

    Git-2.30.2-32-bit.exe.zip(免积分)Git-2.30.2-32-bit.exe.zip(免积分)Git-2.30.2-32-bit.exe.zip(免积分)Git-2.30.2-32-bit.exe.zip(免积分)Git-2.30.2-32-bit.exe.zip(免积分)Git-2.30.2-32-bit.exe.zip...

    git常见指令大全脑图 超详细的git命令集合

    git常见指令大全脑图 超详细的git命令集合供大家学习下载,后续会持续进行更新,方便记忆git常见指令大全脑图 超详细的git命令集合供大家学习下载,后续会持续进行更新,方便记忆git常见指令大全脑图 超详细的git...

    linux系统安装git及git常用命令

    1 安装GIT 代码如下:$ sudo aptitude install git$ sudo aptitude install git-doc git-svn git-email git-gui gitk git软件包包含了大部分Git命令,是必装的软件包,第二行命令也是Git软件包,但是是单独发布的,...

    精通Git(第二版简体中文)_带书签

    本书不仅是Git日常操作指南,而且深入剖析了Git的内部原理,能有效帮助程序员提升软技能。 如果你刚刚启程探索Git,本书对于Git的用法、基本命令和分支机制的讲解将助你轻松入门、不走弯路。 如果你在Git之路上已经...

    Git安装使用教程 git-2.41.0-64安装包

    git安装包

    git 可视化工具

    git 可视化工具git 可视化工具git 可视化工具git 可视化工具git 可视化工具git 可视化工具git 可视化工具git 可视化工具git 可视化工具git 可视化工具git 可视化工具git 可视化工具git 可视化工具git 可视化工具git ...

    OSError: Looks like you do not have git-lfs installed【没有root权限】

    LFS是Large File Storage的缩写,用了帮助git管理大的文件 ...对于git lfs来说,在使用git lfs track命令后,git push的时候,git lfs会截取要管理的大文件,并将其传至git lfs的服务器中,从而减小仓库的体积

    GIT 压缩包 适用于压缩包式安装git

    GIT 压缩包 适用于压缩包式安装git

    git常用命令 嵌入式开发过程中git的简单使用

    git常用命令,嵌入式开发过程中,也经常使用git进行版本管理,根据项目需求对git的使用程度不一样。这里介绍一种,git的简单使用,可以满足大部分的嵌入式开发,可以说嵌入式开发使用git后,可以基本拜托掉之前的的...

    GIT相关书籍下载 Git+使用教程 Git权威指南 01链接

    GIT相关书籍下载 Git+使用教程 Git权威指南 01链接 GIT相关书籍下载 Git+使用教程 Git权威指南 02链接 Git+使用教程.pdf git.part1.rar git.part2.rar Gitbook.pdf git_ch03.pdf Git权威指南.pdf git简介.pdf ...

Global site tag (gtag.js) - Google Analytics