Git 是分布式版本控制系统,用来记录项目历史、协作开发、分支实验。下面按「日常最常用」的顺序说明,并配示意图帮助理解数据流与分支。

工作区 → 暂存区 → 本地仓库 → 远程(概念示意)

1. 安装与首次配置

  • 安装:到 git-scm.com 下载对应系统版本;macOS 也可用 Xcode Command Line Tools、brew install git
  • 身份(提交会署名,建议先设一次):
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"
  • 查看配置git config --list;某一项:git config user.name

2. 三个「区域」:改代码时数据停在哪

理解下面三者,很多命令就好记了:

区域 含义 常用命令
工作区 你正在编辑的目录里的文件 直接保存文件
暂存区(索引) 下一次提交「要打包哪些改动」 git add
本地仓库 .git 里已经提交的版本历史 git commit

远程上的副本(如 GitHub)再通过 git push / git pull 与本地同步。上图是这一流程的简化示意。

日常小循环:

git status          # 看哪些文件改了、是否已暂存
git add 文件        # 或 git add . 暂存当前目录下改动
git commit -m "说明本次提交做了什么"

3. 查看历史与差异

git log --oneline     # 简洁提交列表
git log -p -1         # 最近一次提交的补丁
git diff              # 工作区 vs 暂存区
git diff --staged     # 暂存区 vs 上一次提交

4. 分支:并行开发与合并

分支让你可以在不影响主线的情况下做功能或修 bug。常见流程:从 main(或 master)拉出分支 → 开发 → 合并回去。

分支从主线分出再合并(示意)

git branch              # 列出本地分支,* 为当前分支
git switch -c feature   # 新建并切换到 feature(旧版可用 git checkout -b feature)
git switch main         # 切回 main
git merge feature       # 在 main 上合并 feature

合并可能出现冲突:Git 会在文件里标出冲突段落,手工编辑后 git addgit commit 完成合并。

5. 与远程协作(以 GitHub 为例)

git clone https://github.com/用户名/仓库.git   # 第一次把远程拷到本地
git remote -v                                  # 查看远程地址
git pull                                       # 拉取并合并远程更新(同分支)
git push origin main                           # 把本地 main 推到远程 origin

首次 push 若远程为空,可能需:

git push -u origin main

-u 会建立上游跟踪,之后在该分支上可直接 git push / git pull

6. 实用习惯

  • 提交信息写清楚:方便以后 git log 和协作审查。
  • 小而频繁的提交:比一次塞巨大改动更容易排查问题。
  • .gitignore:把构建产物、密钥、依赖目录(如 node_modules/)写进去,避免误提交。
  • 不确定时先 git status / git diff:再决定 add 哪些文件。

7. 配图说明

文中插图为示意,不同工具界面可能略有差异;命令以你本机安装的 Git 版本为准。更系统的学习可参考官方书 Pro Git(有中文版)。

若你已在用 GitHub,可以继续熟悉 fork、Pull Request、SSH 远程地址:日常协作多半绕不开这三件事;具体命令与界面以 GitHub 当前文档为准。