git版本控制
发表于|更新于
|阅读量:
Git 本地版本控制完全教程
本教程基于你下载的项目 git_tutorial_project,手把手教你使用 Git 进行本地版本控制。项目链接 🔗
目录
- Git 安装与配置
- 初始化仓库
- 基本工作流程
- 查看状态与历史
- 代码回退(核心)
- 分支管理
- 标签与里程碑
- 撤销与清理
- 常用命令速查表
1. Git 安装与配置
1.1 安装 Git
Ubuntu/Debian:
1 2
| sudo apt update sudo apt install git
|
macOS:
Windows:
下载安装包:https://git-scm.com/download/win
1.2 配置用户信息(必须)
1 2 3 4 5 6
| git config --global user.name "你的名字" git config --global user.email "your@email.com"
git config --list
|
1.3 配置默认编辑器(可选)
1 2 3 4 5
| git config --global core.editor "code --wait"
git config --global core.editor "nano"
|
2. 初始化仓库
进入项目目录,初始化 Git 仓库:
1 2 3 4 5 6 7 8
| cd git_tutorial_project
git init
ls -la .git
|
提示:.git 目录就是 Git 的数据库,不要手动修改或删除它。
3. 基本工作流程
Git 有三个核心区域:
- 工作区(Working Directory):你实际编辑的文件
- 暂存区(Staging Area/Index):准备提交的更改
- 本地仓库(Repository):提交后的历史记录
3.1 添加文件到暂存区
1 2 3 4 5 6 7 8 9 10 11
| git add README.md
git add .
git add *.py
git add -p
|
3.2 提交更改到本地仓库
1 2 3 4 5 6 7 8
| git commit -m "提交说明"
git commit -am "修改说明"
git commit
|
提交信息规范:
feat: 新功能
fix: 修复 bug
docs: 文档更新
style: 代码格式调整
refactor: 重构
test: 测试相关
3.3 实操练习
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| git init
git add .
git commit -m "feat: 项目初始化,添加基础结构"
git status
git diff
git add src/main.py
git commit -m "fix: 更新主程序输出内容"
|
4. 查看状态与历史
4.1 查看当前状态
1 2 3 4 5
| git status
git status -s
|
4.2 查看修改内容
1 2 3 4 5 6 7 8
| git diff
git diff --staged
git diff HEAD -- src/main.py
|
4.3 查看提交历史
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| git log
git log --oneline
git log --oneline --graph --all
git log -5
git log --follow src/main.py
git log -p
|
4.4 查看某个提交详情
1 2 3 4 5 6 7 8
| git show
git show abc1234
git show abc1234:src/main.py
|
5. 代码回退(核心)
这是最重要的部分,掌握这些命令可以救你于水火。
5.1 回退到指定版本(保留修改)
1 2 3 4 5 6
| git reset --soft HEAD~1
|
5.2 回退到指定版本(丢弃暂存区)
1 2 3 4 5 6
| git reset --mixed HEAD~1
git reset HEAD~1
|
5.3 回退到指定版本(完全丢弃修改)⚠️
1 2 3 4 5
| git reset --hard HEAD~1
|
5.4 回退到指定 commit ID
1 2 3 4 5 6 7 8 9 10 11 12 13
| git log --oneline
git reset --hard e4f5g6h
git reset --hard HEAD~2
|
5.5 回退后后悔了?用 reflog 找回!
1 2 3 4 5 6 7 8 9 10
| git reflog
git reset --hard e4f5g6h
|
reflog 是救命稻草,即使使用了 git reset --hard,只要 reflog 还在,就能找回。
5.6 撤销工作区的修改(未 add)
1 2 3 4 5 6 7
| git checkout -- src/main.py
git checkout -- .
|
5.7 撤销暂存区的修改(已 add 未 commit)
1 2 3 4 5 6 7 8
| git reset HEAD src/main.py
git reset HEAD
git checkout -- src/main.py
|
5.8 修改最后一次提交
1 2 3 4 5 6 7 8
| git commit --amend -m "新的提交信息"
git add 漏掉的文件 git commit --amend --no-edit
|
5.9 回退实操练习
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| git commit -m "写错了的提交信息" git commit --amend -m "正确的提交信息"
git add . git commit -m "不小心提交了临时文件" git reset --soft HEAD~1 git reset HEAD 临时文件.txt git checkout -- 临时文件.txt git add . git commit -m "feat: 正确的提交"
git status git reset --hard HEAD
git reset --hard HEAD~2
git reflog git reset --hard HEAD@{1}
|
6. 分支管理
6.1 创建与切换分支
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| git branch
git branch feature-login
git checkout feature-login
git checkout -b feature-login
git switch -c feature-login
|
6.2 合并分支
1 2 3 4 5 6 7 8 9
| git checkout main
git merge feature-login
git add . git commit -m "merge: 合并 feature-login 分支"
|
6.3 删除分支
1 2 3 4 5
| git branch -d feature-login
git branch -D feature-login
|
6.4 储藏临时修改(Stash)
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| git stash
git stash list
git stash pop
git stash apply stash@{1}
git stash drop stash@{0}
|
7. 标签与里程碑
1 2 3 4 5 6 7 8 9 10 11
| git tag -a v1.0 -m "版本 1.0 发布"
git tag
git checkout v1.0
git tag -d v1.0
|
8. 撤销与清理
8.1 清理未跟踪文件
1 2 3 4 5 6 7 8 9 10 11
| git clean -n
git clean -f
git clean -fd
git clean -fdx
|
8.2 忽略文件权限变化
1
| git config --global core.filemode false
|
9. 常用命令速查表
| 命令 |
说明 |
git init |
初始化仓库 |
git add <file> |
添加文件到暂存区 |
git add . |
添加所有更改 |
git commit -m "msg" |
提交更改 |
git status |
查看状态 |
git diff |
查看工作区差异 |
git log --oneline |
查看提交历史 |
git log --graph --all |
图形化查看分支 |
git reflog |
查看操作记录 |
git reset --soft HEAD~1 |
软回退(保留修改) |
git reset --mixed HEAD~1 |
混合回退(默认) |
git reset --hard HEAD~1 |
硬回退(丢弃修改) |
git checkout -- <file> |
撤销工作区修改 |
git reset HEAD <file> |
撤销暂存区修改 |
git commit --amend |
修改最后一次提交 |
git branch |
查看分支 |
git branch <name> |
创建分支 |
git checkout <branch> |
切换分支 |
git checkout -b <name> |
创建并切换分支 |
git merge <branch> |
合并分支 |
git stash |
储藏临时修改 |
git stash pop |
恢复储藏 |
git tag <name> |
创建标签 |
git clean -fd |
清理未跟踪文件 |
总结
Git 的核心就是围绕 工作区 → 暂存区 → 本地仓库 这三个区域的流转。
最重要的保命命令:
git reflog —— 后悔药,能找回几乎所有操作
git status —— 随时查看当前状态
git log --oneline —— 快速查看历史
多练习,尤其是 git reset 的各种模式,这是本地版本控制的核心技能。
Happy Coding with Git! 🎉