Git 核心知识点总结
一、Git 基础概念
- 版本控制系统 (VCS):Git 是分布式版本控制系统,相比集中式(如 SVN),每个开发者本地都有完整的代码仓库,无需依赖中央服务器即可提交、回滚等操作。
- 三大区域 :
- 工作区 (Working Directory):本地写代码的目录,直观可见的文件目录。
- 暂存区 (Staging Area/Index):临时存放待提交的修改,相当于 "提交缓冲区"。
- 版本库 (Repository):Git 真正存储版本数据的地方,
.git目录就是版本库核心。
- 核心对象 :
- 提交 (Commit):版本的快照,每个提交有唯一的哈希值(SHA-1),包含作者、时间、修改内容、父提交等信息。
- 分支 (Branch):代码开发的并行线,默认主分支是
main(旧版为master),可基于主分支创建功能分支开发,完成后合并。 - 标签 (Tag):标记重要的版本节点(如 v1.0、v2.1),常用于发布版本。
二、Git 核心操作(高频)
1. 仓库初始化与克隆
bash
# 本地初始化新仓库
git init
# 克隆远程仓库到本地
git clone <远程仓库地址> # 例:git clone https://github.com/xxx/xxx.git
2. 基础提交流程
bash
# 查看文件状态(工作区/暂存区差异)
git status
# 将工作区文件添加到暂存区
git add <文件名> # 添加指定文件
git add . # 添加所有修改/新增文件
git add -u # 仅添加已追踪文件的修改/删除(不包含新增)
# 将暂存区内容提交到版本库
git commit -m "提交说明" # -m 后跟简洁的提交信息(必填)
git commit -am "提交说明" # 跳过暂存区,直接提交已追踪文件的修改
# 查看提交历史
git log # 完整提交记录
git log --oneline # 简洁版(哈希值前7位+提交信息)
git log --graph # 图形化展示分支合并历史
3. 分支操作
bash
# 查看分支
git branch # 列出本地分支(* 标记当前分支)
git branch -r # 列出远程分支
git branch -a # 列出所有分支(本地+远程)
# 创建分支
git branch <分支名> # 仅创建,不切换
git checkout -b <分支名> # 创建并切换到新分支(常用)
git switch -c <分支名> # Git 2.23+ 替代 checkout 的新命令
# 切换分支
git checkout <分支名>
git switch <分支名> # 新版推荐
# 合并分支(先切到目标分支,再合并)
git merge <待合并分支名> # 例:在main分支执行 git merge feature/login
# 删除分支
git branch -d <分支名> # 删除已合并的本地分支
git branch -D <分支名> # 强制删除未合并的本地分支
4. 远程仓库操作
bash
# 关联远程仓库(首次)
git remote add origin <远程仓库地址>
# 查看远程仓库信息
git remote -v
# 拉取远程分支代码(合并到本地)
git pull origin <分支名> # 例:git pull origin main
# 推送本地分支到远程
git push origin <分支名> # 例:git push origin feature/pay
git push -u origin <分支名> # 首次推送,关联本地与远程分支(后续可直接 git push)
# 删除远程分支
git push origin --delete <分支名>
5. 撤销 / 回滚操作
bash
# 撤销工作区修改(恢复到暂存区/版本库状态)
git checkout -- <文件名>
# 撤销暂存区修改(回到工作区)
git reset HEAD <文件名>
# 回滚到指定提交(保留工作区修改,仅撤销提交记录)
git reset --soft <提交哈希值>
# 彻底回滚到指定提交(工作区、暂存区都恢复到该版本)
git reset --hard <提交哈希值>
# 撤销最近一次提交(保留修改,回到暂存区)
git commit --amend # 可修改上次提交信息,或补充暂存区文件
三、Git 进阶技巧
-
忽略文件(.gitignore) :
- 创建
.gitignore文件,写入无需追踪的文件 / 目录(如node_modules/、*.log、.env)。 - 注意:
.gitignore只对未追踪的文件生效,若文件已提交,需先删除追踪再生效:git rm --cached <文件名>。
- 创建
-
暂存工作区(stash) :
bash
git stash # 暂存当前工作区修改 git stash list # 查看暂存列表 git stash apply # 应用最近一次暂存(不删除暂存记录) git stash pop # 应用并删除最近一次暂存 git stash drop # 删除指定暂存 -
变基(rebase) :
- 替代
merge的分支合并方式,让提交历史更线性:git rebase <目标分支>(慎用,不修改已推送到远程的提交)。
- 替代
-
标签管理 :
bash
git tag v1.0 # 创建轻量标签 git tag -a v1.0 -m "版本1.0发布" # 创建附注标签(推荐) git push origin v1.0 # 推送标签到远程
总结
- 核心逻辑:Git 核心是 "工作区→暂存区→版本库" 的提交流程,分布式特性让本地可独立完成大部分版本操作。
- 高频操作 :
add/commit(提交)、branch/checkout/merge(分支)、pull/push(远程同步)是日常开发最常用的命令。 - 关键注意 :分支操作前先
git status确认工作区状态,避免未提交的修改被覆盖;远程分支合并优先用merge,rebase仅用于本地分支整理。
掌握这些核心知识点,就能覆盖日常开发中 90% 以上的 Git 使用场景,进阶技巧可在实际需求中逐步学习。