Git简介

Git概述

Git是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目

  • 特点
    Git易于学习,占地面积小,性能极快。它具有廉价的本地库(在本地的磁盘) ,方便的暂存区域和多个工作流分支等特性。其性能优于Subversion、CVS、Perforce和ClearCase等版本控制工具。
  • 何为版本控制
    版本控制是一种记录文件内容变化,以便将来查阅特定版本修订情况的系统。版本控制其实最重要的是可以记录文件修改历史记录,从而让用户能够查看历史版本
    官网链接
    Git

版本控制工具

集中式版本控制工具
CVS、SVN(Subversion)、VSS...

集中化的版本控制系统诸如CVS、SVN 等,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。多年以来,这已成为版本控制系统的标准做法。

这种做法带来了许多好处,每个人都可以在一定程上看到项目中的其他人正在做些什么。而管理员也可以轻松掌控每个开发者的权限,并且管理一个集中化的版本控制系统,要远比在各个客户端上维护本地数据库来得轻松容易。

事分两面,有好有坏。这么做显而易见的缺点是中央服务器的单点故障。如果服务器宕机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作。
分布式版本控制工具
Git、Mercurial、Bazaar、Darcs...

像Git这种分布式版本控制工,客户端提取的不是最新版本的文件快照,而是把代码仓库完整地镜像下来(本地库)。这样任何一处协同工作用的文件发生故障,事后都可以用其他客户端的本地仓库行恢复。因为每个客户端的每一次文件提取操作,实际上都是一次对整个文件仓库的完整备份。

分布式的版本控制系统出现之后,解决了集中式版本控制系统的缺陷:1.服务器断网的情况下也可以进行开发(因为版本控制是在本地进行的)←2.每个客户端保存的也都是整个完整的项目(包含历史记录,更加安全)

区别对比

对比维度 集中式版本控制 分布式版本控制
仓库架构 1 个中央仓库(唯一存储源)+ 多个本地 "工作副本"(无完整历史) 每个开发者本地有完整仓库(含全量历史)+ 1 个可选 "中央仓库"(用于协作同步)
离线能力 完全依赖中央仓库:离线无法提交、查看历史、创建分支 完全支持离线:本地可提交、查看历史、合并分支,联网后同步即可
分支机制 分支在中央仓库创建,本地需 "拉取分支" 才能操作;分支操作(创建 / 删除)需联网,且可能影响团队 分支在本地仓库创建,操作(创建 / 删除 / 切换)秒级完成;本地分支不影响他人,同步到中央仓库才可见
提交逻辑 提交直接推送到中央仓库,"提交即公开";若中央仓库故障,无法提交 先 "本地提交"(历史存本地),再 "远程推送"(同步到中央仓库);提交不依赖远程可用性
冲突处理 冲突只能在 "推送代码到中央仓库时" 触发,且需实时解决(否则无法提交) 冲突可在 "本地合并时" 提前解决,也可在 "推送前" 与远程仓库对比解决,灵活性更高
数据安全性 中央仓库是单点风险:若中央仓库损坏且无备份,所有历史记录丢失 多节点备份:每个本地仓库都是完整备份,中央仓库损坏可从任意开发者本地恢复
网络依赖 几乎所有操作(提交、拉取、分支、历史查询)都需联网访问中央仓库 仅 "同步(拉取 / 推送)" 需联网,其他操作(提交、分支、历史)本地完成,对网络要求低
适用团队规模 小型团队(10 人内)、协作频率低、网络稳定的场景 中大型团队、跨地域协作(如远程团队)、网络不稳定的场景

Git以及Github发展概述[1](#Git以及Github发展概述1)

诞生背景与技术目标
Git 由 Linus Torvalds 于 2005 年 开发,初衷是为高效管理 [[Linux]]内核开发的庞杂代码。此前版本控制系统(如 CVS、SVN)存在性能瓶颈和集中式架构缺陷,无法满足分布式协作需求。
核心设计:采用分布式版本控制(DVCS),每个开发者拥有完整的代码仓库副本,支持离线操作、高速分支管理和强数据完整性(通过 SHA-1 哈希校验)。
技术演进与普及

  • 开源与标准化:Git 以 GPL 协议开源,迅速成为全球开发者的基础工具。其命令行接口虽强大但门槛较高,推动了图形化客户端(GUI)的衍生,如 TortoiseGit(集成 Windows 资源管理器)、SourceTree(跨平台)等。
  • 生态扩展:Git 的核心能力(分支、合并、暂存区)成为现代 DevOps 流程的基石,并嵌入主流开发工具(如 VS Code、IntelliJ IDEA)

!info\] Linux与Git及Github的联系 Git 的诞生直接源于 \[\[Linux\]\] 内核的开发需求,GitHub 作为基于 Git 的代码托管平台,成为连接 Git 和 Linux 生态的桥梁,三者都是\*\*林纳斯・托瓦兹(Linus Torvalds)\*\*开发的开源项目

Git的工作机制

Git由工作区,暂存区,本地库三个区组成

  • 工作区 代码存放的位置(一般在这里修改代码)
  • 暂存区 临时存储(一般这里存放修改后的代码来暂时保存在本地)
  • 本地库 存放历史版本 (修改满意后,将最终代码上传到本地库)

!tip

按工作区->暂存区->本地库的顺序上传到库里

Git 与代码托管中心

代码托管中心是基于网络服务器的远程代码仓库,般我们简单称为远程库。
局域网

  • GitLab
    互联网
  • GitHub(外网)
  • Gitee码云(国内网站)

Git安装

教学视频


  1. 该内容来源于网络 ↩︎
相关推荐
CNRio3 小时前
Day 13:Git文件状态:工作区、暂存区、仓库的状态转换状态转换图+命令对照表(附状态机流程图)
git·流程图
花花少年4 小时前
git使用技巧 - commit信息提交
git
CNRio4 小时前
Day 12:Git配置详解:用户信息、编辑器、颜色等配置
git·elasticsearch·编辑器
草莓熊Lotso5 小时前
Python 进阶核心:字典 / 文件操作 + 上下文管理器实战指南
数据结构·c++·人工智能·经验分享·笔记·git·python
CoderJia程序员甲13 小时前
GitHub 热榜项目 - 日榜(2025-12-30)
git·ai·开源·llm·github
夜流冰15 小时前
Git - github-git-cheat-sheet
git·github
AD钙奶-lalala16 小时前
本地新建分支并推到远程Git实现
git
Yulki1 天前
【经验分享】Git如何连接Github私有仓库
经验分享·git·github
弘毅 失败的 mian1 天前
Git 多人协作
经验分享·笔记·git