关于git的理解

什么是git

git是一个C语言编写分布式版本控制系统。不需要中央服务器,不需要联网
对应的是:集中式的版本控制系统是需要中央服务器的,版本库是放在中央服务器的,而分布式的版本控制的优点就是没有中央服务器,每个电脑都是一个完整的版本库。这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上

类似系统CVS、SVN、Perforce都是集中式版本控制系统,分布式系统有Git, Mercurial、Bazaar、Darcs、FOssil等

Git管理的是文件的修改,而不是文件

所有的版本控制系统,其实只能跟踪文本文件的改动,比如TXT文件,网页,所有的程序代码等等,Git也不例外。版本控制系统可以告诉你每次的改动。

而对于图片、视频这些二进制文件,虽然也能由版本控制系统管理,但没法跟踪文件的变化,只能把二进制文件每次改动串起来,也就是只知道图片从100KB改成了120KB,但到底改了啥,版本控制系统不知道,也没法知道。

所以Git比其他版本控制系统设计得优秀,因为Git跟踪并管理的是修改,而非文件。

为什么Git添加文件需要add,commit一共两步呢?

在这里插入图片描述
add是将修改提交到暂存区,commit是把暂存区的内容推送到代码仓库

因为commit可以一次提交很多文件,所以你可以多次add不同的文件 commit后面的参数-m是本次提交的说明,输入说明对阅读很重要

关于修改
第一次修改 -> git add -> 第二次修改 -> git add -> git commit
每次修改都要add到暂存区,最后才会commit

那为什么要有暂存区呢?

为了保证提交的原子性,让提交颗粒度分明

关于工作区,暂存区,版本库

工作区相当于你电脑的工程文件夹,里面有一个.git的隐藏目录,是git的版本库,版本库包括两部分,一部分是add后的暂存区,一部分是commit后的代码仓库
在这里插入图片描述
在Git中,用HEAD表示当前工作的分支,也就是最新的提交1094adb…,上一个版本就是HEAD^ (head后面有一个^ ),上上一个版本就是HEAD^^,100版本写成HEAD~100。

关于git的常用指令,参考我的另一篇博客git常用指令

我对git的理解也不是很深入,推荐廖老师的git教程

以及我的小伙伴对git的理解深入理解git

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值