您现在的位置是:首页 > 正文

Git

2024-04-01 02:53:09阅读 3

Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。

Windows下的Git请看这里:http://www.oschina.net/p/msysgit

Git 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

Torvalds 开始着手开发 Git 是为了作为一种过渡方案来替代 BitKeeper,后者之前一直是 Linux 内核开发人员在全球使用的主要源代码工具。开放源码社区中的有些人觉得 BitKeeper 的许可证并不适合开放源码社区的工作,因此 Torvalds 决定着手研究许可证更为灵活的版本控制系统。尽管最初 Git 的开发是为了辅助 Linux 内核开发的过程,但是我们已经发现在很多其他自由软件项目中也使用了 Git。例如,X.org 最近就迁移到 Git 上来了,很多 Freedesktop.org 的项目也迁移到了 Git 上。

Git与CVS的区别

  • 分支更快、更容易。
  • 支持离线工作;本地提交可以稍后提交到服务器上。
  • Git 提交都是原子的,且是整个项目范围的,而不像 CVS 中一样是对每个文件的。
  • Git 中的每个工作树都包含一个具有完整项目历史的仓库。
  • 没有哪一个 Git 仓库会天生比其他仓库更重要。

--------------------

Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。 [1]
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
Torvalds 开始着手开发 Git 是为了作为一种过渡方案来替代 BitKeeper,后者之前一直是 Linux 内核开发人员在全球使用的主要源代码工具。开放源码社区中的有些人觉得 BitKeeper 的许可证并不适合开放源码社区的工作,因此 Torvalds 决定着手研究许可证更为灵活的版本控制系统。尽管最初 Git 的开发是为了辅助 Linux 内核开发的过程,但是我们已经发现在很多其他自由软件项目中也使用了 Git。例如 最近就迁移到 Git 上来了,很多 Freedesktop 的项目也迁移到了 Git 上。 [1]

特点

分布式和集中式的最大区别在于开发者可以本地提交。每个开发者机器上都有一个服务器的数据库。
下图是经典的git开发过程。
Git的功能特性:
从一般开发者的角度来看git有以下功能:
1:从服务器上克隆数据库(包括代码和版本信息)到单机上。
2:在自己的机器上创建分支,修改代码。
3:在单机上自己创建的分支上提交代码。
4:在单机上合并分支。
5:新建一个分支,把服务器上最新版的代码fetch下来,然后跟自己的主分支合并。
6:生成 补丁(patch),把补丁发送给主开发者。
7:看主开发者的反馈,如果主开发者发现两个一般开发者之间有冲突(他们之间可以合作解决的冲突),就会要求他们先解决冲突,然后再由其中一个人提交。如果主开发者可以自己解决,或者没有冲突,就通过。
8:一般开发者之间解决冲突的方法,开发者之间可以使用pull 命令解决冲突,解决完冲突之后再向主开发者提交 补丁

功能

从主开发者的角度(假设主开发者不用开发代码)看,git有以下功能:
1:查看邮件或者通过其它方式查看一般开发者的提交状态。
2:打上 补丁,解决冲突(可以自己解决,也可以要求开发者之间解决以后再重新提交,如果是开源项目,还要决定哪些补丁有用,哪些不用)。
3:向公共服务器提交结果,然后通知所有开发人员。
优点:
适合 分布式开发,强调个体。
公共服务器压力和数据量都不会太大。
速度快、灵活。
任意两个开发者之间可以很容易的解决冲突。
离线工作。
缺点:
资料少(起码中文资料很少)。
学习周期相对而言比较长。
不符合常规思维。
代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。

 

转载于:https://www.cnblogs.com/kungfupanda/archive/2013/02/26/2933066.html

网站文章

  • java8 stream多字段排序

    很多情况下sql不好解决的多表查询,临时表分组,排序,尽量用java8新特性stream进行处理使用java8新特性,下面先来点基础的List<类> list; 代表某集合//返回 对象集合以类属性一...

    2024-04-01 02:52:29
  • 研发工作中感受颇深的一些著名定律

    在书中,我们经常能够看到这样那样的法则、定律。然而真正经历过这些事,回过头来进行深度思考的时候,才越来越觉的这些定律、法则的道理之处。下边简述了一些自己感悟比较深刻的定律,当然还有很多,不断学习,不断经历,不断感悟,不断成长吧。 一,在系统设计时,应该多思考“墨菲定律”: 1,任何事都没有表面看起来那么简单; 2,所有的事都会比你预计的时间长; 3,可能出错的事总会出错; ...

    2024-04-01 02:52:20
  • 2012-01-31 学习笔记

    1.   Comprehend V$PROCESS VIEW2.   Comprehend PSEUDO PROCESS3.   Comprehend Database Process and how to related Operation System Process4.   Comprehend V$SESSION and V$PROCESS of relation5

    2024-04-01 02:52:13
  • 二叉树从根节点到r所指节点之间的路径并输出算法【C/C++】

    二叉树从根节点到r所指节点之间的路径并输出算法【C/C++】

    二叉树从根节点到r所指节点之间的路径并输出算法

    2024-04-01 02:51:31
  • 安卓相关测试

    安卓相关测试

    环境准备:网易Mumu安卓模拟器,里面还有adb方便调试: http://mumu.163.com/baidu/adb: brew cask install android-platform-tools动态调试adb连接,mac下网易mumu端口是5555,windows下是7555windows下:adb connect 127.0.0.1:7555adb shell...

    2024-04-01 02:51:24
  • SGI STL学习笔记(2):traits编程技法

    traits编程技法

    2024-04-01 02:51:17
  • 深度学习入门

    深度学习入门

    ---恢复内容开始---Softmax函数,或称归一化指数函数是逻辑函数的一种推广。它能将一个含任意实数的K维向量“压缩”到另一个K维实向量中,使得每一个元素的范围都在之间,并且所有元素的和为1。该函数的形式通常按下面的式子给出: forj= 1, …,K.wiki的资料看完了,就感觉softmax的作用只有归一化。cross-entropy loss...

    2024-04-01 02:51:11
  • Java跨域请求代码

    1、get请求的方式get请求中,如果拼接的参数字符串中带有空格,后台会报错无法请求成功,适用于通过属性值查询对象接口。import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.net.HttpURLConnection;import j...

    2024-04-01 02:50:29
  • 如何在一个页面中动态放置多个Droppable来接受不同的Draggable?(accept参数的用法)...

    如何在一个页面中动态放置多个Droppable来接受不同的Draggable?(accept参数的用法)...

    工作中遇到这个问题,问别人解决了。答案在问题的下半部分,仅供参考。http://stackoverflow.com/questions/6501812/how-to-use-danymic-accept-value-in-jqueryui-droppable 点击下载免费的敏捷开发教材:《火星人敏捷开发手册》转载于:https://www.cnblogs.com/JPAORM/...

    2024-04-01 02:50:24
  • 一种有趣的弱监督机器学习问题:比例标签学习(Learning from label proportions)

    一种有趣的弱监督机器学习问题:比例标签学习(Learning from label proportions)

    欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法...

    2024-04-01 02:50:16