跳到主要内容

🚀 Git 基础入门

❓ 什么是 Git

Git 是一个分布式版本控制系统(Distributed Version Control System),由 Linus Torvalds 在 2005 年创建,用于管理 Linux 内核开发。

与传统的集中式版本控制系统(如 SVN)不同,Git 让每个开发者的本地仓库都拥有完整的历史记录,可以在离线状态下完成几乎所有操作。

💡 Git 的作用

  • 📖 历史追踪:记录每一次代码变更,随时可以回溯到任意历史版本。
  • 🤝 并行协作:多个开发者可以同时工作,通过分支和合并高效整合代码。
  • 🔄 版本回滚:当新版本出现问题时,可以快速回退到上一个稳定版本。
  • 🧪 实验隔离:通过分支在隔离环境中尝试新想法,不影响主分支。
  • 📊 责任追溯:通过 git blamegit bisect 精准定位问题代码和引入者。

🤔 为什么使用 Git

在当今软件开发中,Git 已经成为事实标准。以下是选择 Git 的核心原因:

理由说明
🌍 市场占有率最高超过 90% 的开发者在使用 Git,GitHub/GitLab 生态极其丰富
⚡ 性能卓越本地操作极快,网络断开也能正常工作
🛡️ 数据完整性所有提交通过 SHA-1 校验,防止数据损坏或篡改
🌿 分支模型优雅创建、切换、合并分支的代价极低,鼓励频繁使用分支
📦 分布式架构每个克隆都是完整备份,无单点故障风险

⚖️ Git vs. SVN vs. Mercurial 详细对比

特性GitSVN (Subversion)Mercurial (Hg)
架构类型🌍 分布式🏢 集中式🌍 分布式
离线工作✅ 完整支持❌ 需要服务器连接✅ 完整支持
分支性能⚡ 极快(本地操作)🐢 较慢(服务器侧)⚡ 极快
学习曲线📈 中等(概念较多)📉 较平缓📊 中等
存储空间📦 高效(压缩+去重)📂 较大📦 高效
主要用户开源界/互联网公司传统企业/游戏公司Facebook(已迁移至 Git)
推荐场景💻 几乎所有场景🏢 传统企业内部🌐 已逐渐被 Git 取代
💡 迁移建议

如果你正在使用 SVN 或 Mercurial,建议尽快迁移到 Git。GitHub 提供了 导入工具,大多数迁移可以在几分钟内完成。

🛠️ 安装 Git

📋 系统要求

  • Windows:Windows 7 或更高版本
  • macOS:OS X 10.9 或更高版本
  • Linux:任意现代发行版(内核 2.6+)

🏁 安装步骤

方式一:官方安装包(推荐)

  1. 访问 Git 官方下载页
  2. 下载 64-bit Git for Windows Setup
  3. 运行安装程序,按以下建议配置:
安装选项推荐选择说明
Select Components✅ Git Bash Here右键菜单添加 Git Bash
✅ Git GUI Here右键菜单添加 Git GUI
Choosing HTTPS transport✅ Use the OpenSSL library使用系统证书存储
Configuring line ending conversions✅ Checkout as-is, commit as-is避免换行符自动转换问题
Configuring terminal emulator✅ Use MinTTY更好的终端体验
Default pull behavior✅ Fast-forward or merge保守策略,适合初学者

方式二:Winget(Windows 11+)

winget install --id Git.Git -e --source winget

方式三:Chocolatey

choco install git -y

✅ 验证安装

安装完成后,在终端中运行以下命令验证:

git --version
# 输出示例:git version 2.43.0

⚙️ 初始配置

安装完成后,需要进行一些全局配置。这些配置只需设置一次,除非你需要为不同项目使用不同身份。

👤 配置用户信息

这是最重要的配置——每次提交都会使用这些信息:

# 配置全局用户名和邮箱
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"

# 验证配置
git config --global --list
⚠️ 注意邮箱地址

如果你使用 GitHub 或 GitLab,请确保此处填写的邮箱与平台账号的邮箱一致,否则提交记录不会关联到你的账号。

✏️ 配置默认编辑器

当 Git 需要你输入多行 Commit Message 时,会打开这个编辑器:

# VS Code(推荐)
git config --global core.editor "code --wait"

# Vim(默认,适合熟悉 Vim 的用户)
git config --global core.editor "vim"

# Nano(对新手友好)
git config --global core.editor "nano"

🔧 配置换行符处理

不同操作系统使用不同的换行符(Windows: CRLF,Linux/macOS: LF),配置不当会导致大量无意义的 diff。

# Windows 用户(推荐)
git config --global core.autocrlf false
git config --global core.safecrlf true

# macOS / Linux 用户(推荐)
git config --global core.autocrlf input
💡 更好的方案:.gitattributes

相比全局配置,在项目根目录添加 .gitattributes 文件是更推荐的做法,它可以确保团队成员使用一致的换行符规则:

# .gitattributes
* text=auto
*.sh text eol=lf
*.bat text eol=crlf
*.png binary

⚡ 配置常用别名(可选但推荐)

通过别名可以大幅减少打字量:

git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.st status
git config --global alias.unstage 'reset HEAD --'
git config --global alias.last 'log -1 HEAD'
git config --global alias.visual '!gitk'

配置后可以使用短命令:

git st # 等同于 git status
git co # 等同于 git checkout
git ci # 等同于 git commit
git br # 等同于 git branch

🎉 第一次提交

完成配置后,让我们完成第一次 Git 提交,建立对 Git 工作流的直观理解。

1️⃣ 创建仓库

有两种方式获得一个 Git 仓库:

方式 A:初始化新仓库(本地项目)

# 创建一个新目录并进入
mkdir my-project && cd my-project

# 初始化 Git 仓库
git init

# 查看仓库状态
git status

方式 B:克隆已有仓库(参与已有项目)

# 克隆远程仓库到本地
git clone https://github.com/username/repository.git

# 进入项目目录
cd repository

2️⃣ 查看状态

git status
# 输出示例:
# On branch main
# No commits yet
# nothing to commit (create/copy files and use "git add" to track)

3️⃣ 创建文件并暂存

# 创建一个新文件
echo "# My Project" > README.md

# 查看状态(文件显示为红色,表示未跟踪)
git status

# 将文件加入暂存区
git add README.md

# 再次查看状态(文件显示为绿色,表示已暂存)
git status

4️⃣ 提交变更

# 提交暂存区的内容
git commit -m "feat: add README file"

# 查看提交历史
git log --oneline
# 输出示例:
# abc1234 (HEAD -> main) feat: add README file
💡 关于 Commit Message

-m 参数适合快速提交,但对于重要的提交,建议使用多行 Message:

# 不加 -m 参数,Git 会打开编辑器让你写多行 Message
git commit

编辑器中的格式:

feat: add README file

Add project README with basic description and setup instructions.

- Include installation steps
- Add contribution guidelines reference

5️⃣ 推送到远程(可选)

如果克隆了远程仓库或添加了远程地址,可以将本地提交推送到远程:

# 添加远程仓库地址(仅首次需要)
git remote add origin https://github.com/username/repository.git

# 推送本地 main 分支到远程
git push -u origin main

📝 下一步

恭喜!你已经完成了第一次 Git 提交。接下来建议学习: