git是什么工具

Git是一款分布式源代码管理工具(版本控制工具) 。git 是一个分布式版本控制软件,与CVS、Subversion一类的集中式版本控制工具不同,它采用了分布式版本库的作法,不需要服务器端软件,就可以运作版本控制,使得源代码的发布和交流极其方便。

git是什么工具-Worktile社区

什么是git

git 是一个分布式版本控制软件,最初由林纳斯·托瓦兹创作,于 2005 年以 GPL 发布。最初目的是为更好地管理 Linux 内核开发而设计。应注意的是,这与 GNU Interactive Tools 有所不同。 git 最初的开发动力来自于 BitKeeper 和 Monotone。

git 最初的开发动力来自于 BitKeeper 和 Monotone。git 最初只是作为一个可以被其他前端(比如 Cogito 或 Stgit)包装的后端而开发的,但后来 git 内核已经成熟到可以独立地用作版本控制。很多著名的软件都使用 git 进行版本控制,其中包括 Linux 内核、X.Org 服务器和 OLPC 内核等项目的开发流程。

主要功能

git 是用于 Linux 内核开发的版本控制工具。与 CVS、Subversion 一类的集中式版本控制工具不同,它采用了分布式版本库的作法,不需要服务器端软件,就可以运作版本控制,使得源代码的发布和交流极其方便。git 的速度很快,这对于诸如 Linux 内核这样的大项目来说自然很重要。git 最为出色的是它的合并追踪(merge tracing)能力。

实际上内核开发团队决定开始开发和使用 git 来作为内核开发的版本控制系统的时候,世界上开源社群的反对声音不少,最大的理由是 git 太艰涩难懂,从 git 的内部工作机制来说,的确是这样。但是随着开发的深入,git 的正常使用都由一些友善的命令来执行,使 git 变得非常好用。现在,越来越多的著名项目采用 git 来管理项目开发,例如:wine、U-boot 等。

作为开源自由原教旨主义项目,git 没有对版本库的浏览和修改做任何的权限限制,通过其他工具也可以达到有限的权限控制,比如:gitosis、CodeBeamer MR。原本 git 的使用范围只适用于 Linux/Unix 平台,但在 Windows 平台下的使用也日渐成熟,这主要归功于 Cygwin、msysgit 环境,以及 TortoiseGit 这样易用的 GUI 工具。git 的源代码中也已经加入了对 Cygwin 与 MinGW 编译环境的支持且逐渐完善,为 Windows 用户带来福音。

Git数据库介绍

Git中的大多数操作只需要本地文件和资源来运行 – 通常不需要来自网络上另一台计算机的信息。当您在Git中执行操作时,几乎所有操作都只将数据添加到Git数据库。很难让系统做任何不可撤销的事情或者以任何方式擦除数据。与任何VCS一样,您可能会丢失或搞乱尚未提交的更改,但在将快照提交到Git之后,很难丢失,尤其是在您经常将数据库推送到另一个存储库时。

延伸阅读:

git实现原理

git 和其他版本控制系统(如 CVS)有不少的差别,git 本身关心文件的整体性是否有改变,但多数的版本控制系统如 CVS 或 Subversion 系统则在乎文件内容的差异。git 拒绝保持每个文件的版本修订关系。因此查看一个文件的历史需要遍历各个 history 快照;git 隐式处理文件更名,即同名文件默认为其前身,如果没有同名文件则在前一个版本中搜索具有类似内容的文件。

git 更像一个文件系统,直接在本机上获取数据,不必连线到主机端获取数据。 每个开发者都可有全部开发历史的本地副本,changes 从这种本地 repository 复制给其他开发者。这些 changes 作为新增的开发分支被导入,可以与本地开发分支合并。

分支是非常轻量级的,一个分支仅是对一个 commit 的引用。

git 是用 C 语言开发的,以追求最高的性能。git 自动完成垃圾回收,也可以用命令 git gc –prune 直接调用。

git 存储每个新创建的 object 作为一个单独文件。为了压缩存储空间占用, packs 操作把很多文件(启发式类似名字的文件往往具有类似内容)使用差分压缩入一个文件中(packfile),并创建一个对应的索引文件,指明 object 在 packfile 中的偏移值。新创建的对象仍然作为单独文件存在。repacks 操作非常费时间,git 会在空闲时间自动做此操作。也可用命令 git gc 来直接启动 repack。packfile 与索引文件都用 SHA-1 作为校验和并作为文件名。git fsck 命令做校验和的完整性验证。

Git 服务器典型的 TCP 监听端口为 9418。

文章标题:git是什么工具,发布者:小编,转载请注明出处:https://worktile.com/kb/p/33531

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022年12月27日 下午10:26
下一篇 2022年12月30日 上午6:44

相关推荐

  • 如何做任务发布软件

    做任务发布软件的步骤:一、确定需求;二、设计数据库;三、编写后端代码;四、编写前端代码;五、测试;六、发布;七、维护和更新。在开发任务发布软件之前,需要确定软件的需求。这包括确定软件的用途,拟定软件功能清单,以及设计软件的界面。 一、确定需求 在开发任务发布软件之前,需要确定软件的需求。这包括确定软…

    2023年3月30日
    1500
  • java中的==和equals有什么区别

    java中的==和equals()最大的区别是:一个是运算符,一个是方法。==操作符专门用来比较变量的值是否相同,引用类型对象变量其实是一个引用,它们的值是指向对象所在的内存地址。equals方法常用来比较对象的内容是否相同,equals()方法存在于Object类中。 == ==操作符专门用来比较…

    2023年2月12日
    36000
  • 机器学习与深度学习的区别是什么

    机器学习与深度学习的区别在于:1、数据相关性;2、硬件依赖性;3、特征工程;4、解决问题方法;5、执行时间;6、可解释性。数据相关性是指,深度学习与传统机器学习最重要的区别是,随着数据量的增加,其性能也随之提高。 一、数据相关性 深度学习与传统机器学习最重要的区别是,随着数据量的增加,其性能也随之提…

    2023年2月13日
    7600
  • Linux上有哪些高效的工具软件

    Linux上高效的工具软件有:1、FocusWriter;2、actiTIME;3、LastPass;4、f.lux;5、Simplenote等。FocusWriter是一个文本处理器,可为作家创造一个无干扰的环境,它支持流行的文本格式,并使用隐藏式界面来阻止所有干扰。 一、FocusWriter …

    2023年4月30日
    600
  • 软件开发版本排期工具有哪些

    软件开发版本排期工具有:一、Microsoft Project;二、Trello;三、TeamGantt;四、WPS Office;五、Smartsheet。Microsoft Project是一个由微软公司开发的项目管理软件。它可以帮助项目经理规划和监控项目进度、资源分配和成本控制。 一、Micr…

    2023年4月16日
    8300
  • 计算机中的指令集和指令系统和程序有什么区别

    计算机中的指令集和指令系统和程序的区别:1、作用不同;2、所含内容不同;3、原理不同。作用不同是指指令集是指挥和控制计算机执行某种操作的命令,指令系统是软件和硬件的主要界面,反映了计算机所拥有的基本功能,程序是为实现预期目的而进行操作的一系列语句和指令。 一、计算机中的指令集和指令系统和程序有什么区…

    2023年3月30日
    11400
  • 哪些协议底层基于UDP

    底层基于UDP的协议:1、DNS(域名系统);2、TFTP(简单文件传输协议);3、SNMP(简单网络管理协议);4、RIP(路由信息协议);5、QUIC(快速 UDP 互联网连接 );6、UDT(基于UDP的数据传输协议)。DNS是指,因特网上解决网上机器命名的系统。 1、DNS(域名系统) 域名…

    2023年1月6日
    10800
  • 什么是技术栈

    技术栈(Tech Stack)是指在软件开发过程中所使用的各种技术和工具的集合,包括编程语言、开发框架、数据库、操作系统、云服务等等。选择适合的技术栈是保证项目开发顺利进行的重要因素之一。 一、技术栈定义 技术栈(Tech Stack)是指在软件开发过程中所使用的各种技术和工具的集合,包括编程语言、…

    2023年4月13日
    18300
  • okr代表什么

    OKR(Objectives and Key Results)代表“目标和关键成果”,是企业进行目标管理的一个简单有效的系统,能够将目标管理自上而下贯穿到基层。制定IKR的基本方法,首先,要设定一个“目标”(Objective),然后,设定若干可以量化的“关键结果”(Key Results)。 一、…

    2023年2月9日
    1.3K00
  • 写脚本可以用什么编程语言

    写脚本可以用以下几个编程语言:1、Java;2、Python;3、JavaScript;4、C和/或C++;5、Scala。其中,Java是指,Java是过去20年中最流行的语言之一,它控制着服务器端应用程序开发的世界。 一、Java Java是过去20年中最流行的语言之一,它控制着服务器端应用程序…

    2023年3月18日
    33000

发表回复

登录后才能评论
联系我们
站长微信
站长微信
分享本页
返回顶部