代码世界:分布式版本控制系统--git

代码世界:分布式版本控制系统–git

(一)git的概述

git是一个开源的分布式版本控制系统,能有效的、快速的处理大大小小的项目版本管理,是Linus Torvalds为了帮助Linux内核开发而于2005开发的一个开放源码的版本控制系统。

在这之前,也就是2002年至2005年,Linus决定使用bitkeeper作为Linux内核主要的版本控制系统用以维护代码。然而到了2005年时候,因为某些特殊的原因,bitkeeper的商业公司结束了同Linux内核开源社区的合作关系,并且收回了bitkeeper的免费使用权,这意味如果还想继续使用bitkeeper就需要付费。

付费?这是不可能的。这就迫使Linux开源社区不得不开发一个自己的分布式版本控制系统。于是Linus他决定自行开发版本控制系统来替代BitKeeper。于是,在相对短的时间内(有说法是十天或一个礼拜),他编写出了Git的第一个版本。简直就是神仙!

以下是Linus对于这个版本控制系统的诉求:

(If you're not distributed, then you're not worth using, it's as simple as that)
“如果你不是分布式的,那你就不值得使用,就这么简单”

(If you're poor performers, then you're not worth using, it's as simple as that)“
“如果你性能差,那你就不值得使用,就这么简单

(If you can't guarantee that what I put into the version control system will look exactly the same when I take it out, then you're not worth it)
“如果你不能保证我放进版本控制系统的东西在我拿出来的时候完全一摸一样,那你就不值得使用”

总结就是Linus对于这个版本控制系统的诉求就是:

  • 分布式

  • 性能

  • 稳定性

(二)git的工作流程

git的工作流程主要分为四个区域:工作区、暂存区、本地库、远程库

  • 工作区:实际的代码和目录所在的地方。任何对文件的创建、编辑和删除操作都在这个区域完成。

  • 暂存区:这是一个临时存储区域。通过git add命令,开发者可以将工作区的更改添加至暂存区。这个步骤允许开发者对更改进行分类和准备,以便选择性地提交特定的更改。这样,开发者可以构建一个清晰的提交,准备将其保存到本地库中。

  • 本地库:这是通过git commit命令将暂存区的内容保存为一个新的的提交的地方。本地库存储着项目的完整历史记录,包括各种提交和版本。每次提交都有一个关联的哈希值,开发者可以回溯查看不同版本的代码。本地库提供了项目的完整的快照,允许开发者随时跟踪、恢复或对比不同版本的代码。

  • 远程库:通常位于中心化的代码托管平台,如GitHub、GitLab等。它存储着项目的完整历史记录,包括所有的提交和分支。团队成员可以通过克隆远程库到本地,然后在本地进行代码的修改和提交。一旦本地工作完成,开发者可以将本地的更改推送到远程库,以便与其他团队成员共享。

总结就是:

  • 工作区:存放代码的地方

  • 暂存区:临时存储,将工作区的代码让git知道,通过git add将代码放到暂存区

  • 本地库:将暂存区的代码提交到本地库,就会生成对应的历史版本,这个代码就无法删除,通过git commit命令进行

  • 远程库:将本地库的代码推送到远程库

下面是一张git工作的流程图,每一个流程涉及到一些git命令,后面我们会逐步解析:

在这里插入图片描述

(三)git的分支操作

在git中,分支是一个指向提交对象的可变指针,他代表了项目历史中的一条独立线。每个分支都有一个名字,用来标识和

  • 9
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

anonymous_who_am_i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值