什么是 Git?

Git 是一个开源的分布式版本控制系统,由 Linus Torvalds 于 2005 年为帮助管理 Linux 内核开发而创建。与集中式版本控制系统(如 SVN、CVS)不同,Git 的每个工作目录都是一个完整的版本库,具有完整的历史记录和版本跟踪能力,不依赖于网络连接或中央服务器。

版本控制系统是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。有了它,你可以将某个文件回溯到之前的状态,甚至将整个项目回退到过去某个时间点的状态。

Git 的特点

分布式

每个开发者都有完整的项目历史副本,可以在本地工作而无需网络连接。

强大的分支管理

创建、合并和删除分支操作快速简单,鼓励非线性开发工作流。

高性能

Git 在处理大型项目和长期历史时表现出色,操作速度极快。

数据完整性

Git 中的所有内容在存储前都经过校验和计算,确保数据完整性。

Git 基本工作流程

Git 的基本工作流程涉及三个主要区域:工作目录、暂存区(stage/index)和 Git 仓库。

1

工作目录

修改文件

2

暂存区

暂存已修改的文件

3

Git 仓库

提交更改

4

远程仓库

推送更改

# 初始化新仓库
git init

# 克隆现有仓库
git clone https://github.com/user/repo.git

# 添加文件到暂存区
git add filename

# 提交更改
git commit -m "提交说明"

# 推送到远程仓库
git push origin main

Git 与集中式版本控制系统的区别

集中式版本控制系统 (CVCS)

  • 有一个单一的集中管理的服务器,保存所有文件的修订版本
  • 协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新
  • 如果中央服务器单点故障,会影响所有开发者
  • 代表:Subversion (SVN), Perforce, CVS

分布式版本控制系统 (DVCS)

  • 客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来
  • 每一次的克隆操作,实际上都是一次对代码仓库的完整备份
  • 系统上的每一次历史记录都可以在本地查阅,无需网络连接
  • 代表:Git, Mercurial, Bazaar

Git 常用命令

基础命令

git init - 初始化新仓库

git clone [url] - 克隆现有仓库

git status - 检查仓库状态

git add [file] - 添加文件到暂存区

git commit -m "[message]" - 提交更改

分支操作

git branch - 列出所有分支

git branch [branch-name] - 创建新分支

git checkout [branch-name] - 切换到分支

git merge [branch] - 合并分支