Git 基础操作
本章将介绍 Git 的基本操作,包括创建仓库、添加文件、提交修改等。
Git 工作流程
Git 有三个主要区域:
- 工作区(Working Directory):你正在编辑的文件
- 暂存区(Staging Area):准备提交的文件列表
- 版本库(Repository):已提交的版本历史
工作流程:
- 在工作区修改文件
- 将需要的文件添加到暂存区
- 将暂存区的内容提交到版本库
创建仓库
初始化新仓库
# 创建新目录
mkdir my-project
cd my-project
# 初始化 Git 仓库
git init
初始化后会创建一个 .git 目录,这就是 Git 存储版本信息的地方。
克隆现有仓库
# 克隆远程仓库
git clone https://github.com/username/repository.git
# 克隆到指定目录
git clone https://github.com/username/repository.git my-folder
查看状态
# 查看工作区状态
git status
# 简短输出
git status -s
输出说明:
??- 未跟踪的新文件A- 新添加到暂存区的文件M- 已修改的文件D- 已删除的文件
添加文件
添加单个文件
# 添加特定文件
git add filename.txt
# 添加多个文件
git add file1.txt file2.txt
添加目录
# 添加目录下的所有文件
git add .
# 添加特定目录
git add src/
添加所有文件
# 添加所有修改和新增的文件
git add -A
# 添加所有文件(包括删除)
git add --all
检查文件差异
# 查看工作区的修改
git diff
# 查看暂存区的修改
git diff --staged
# 查看特定文件的修改
git diff filename.txt
提交修改
基本提交
git commit -m "提交说明"
例如:
git commit -m "添加用户登录功能"
添加并提交
# 一步完成添加和提交(只适用于已跟踪的文件)
git commit -a -m "提交说明"
# 简写
git commit -am "提交说明"
修改提交信息
# 修改最后一次提交的信息
git commit --amend -m "新的提交说明"
查看提交历史
# 查看提交历史
git log
# 简洁输出
git log --oneline
# 显示差异
git log -p
# 显示文件统计
git log --stat
# 查看最近 n 条记录
git log -n 5
# 图形化显示
git log --graph --oneline --all
撤销操作
撤销工作区修改
# 撤销特定文件的修改
git checkout -- filename.txt
# 撤销所有修改
git checkout -- .
取消暂存
# 取消暂存特定文件
git reset filename.txt
# 取消所有暂存
git reset
撤销提交
# 撤销最后一次提交(保留修改)
git reset --soft HEAD~1
# 撤销最后一次提交(不保留修改)
git reset --hard HEAD~1
# 撤销前 n 次提交
git reset --soft HEAD~n
恢复删除的文件
# 恢复误删的文件
git checkout HEAD -- filename.txt
文件操作
删除文件
# 从工作区和暂存区删除
git rm filename.txt
# 只从暂存区删除(保留工作区文件)
git rm --cached filename.txt
重命名文件
git mv old-name.txt new-name.txt
这相当于:
mv old-name.txt new-name.txt
git rm old-name.txt
git add new-name.txt
查看文件历史
# 查看文件的提交历史
git log filename.txt
# 查看文件的每次修改
git log -p filename.txt
# 查看谁修改了文件
git blame filename.txt
.gitignore 文件
创建 .gitignore 文件来忽略不需要跟踪的文件:
# 忽略所有 .log 文件
*.log
# 忽略 node_modules 目录
node_modules/
# 忽略特定目录
build/
dist/
# 忽略特定文件
secret.txt
# 但跟踪 lib.js
!lib.js
# 忽略所有 .env 文件
.env
储藏工作区
当你需要切换分支但不想提交当前工作时,可以使用储藏:
# 储藏当前工作
git stash
# 查看储藏列表
git stash list
# 恢复储藏的工作
git stash apply
# 恢复并删除储藏
git stash pop
# 删除储藏
git stash drop
标签操作
创建标签
# 创建轻量标签
git tag v1.0.0
# 创建附注标签
git tag -a v1.0.0 -m "版本 1.0.0"
# 为历史提交添加标签
git tag -a v0.9.0 commit-id
列出标签
# 列出所有标签
git tag
# 搜索标签
git tag -l "v1.*"
删除标签
# 删除本地标签
git tag -d v1.0.0
# 删除远程标签
git push origin --delete v1.0.0
推送标签
# 推送特定标签
git push origin v1.0.0
# 推送所有标签
git push origin --tags
小结
本章我们学习了:
- Git 的工作流程(工作区、暂存区、版本库)
- 创建和克隆仓库
- 查看状态和差异
- 添加文件和提交修改
- 撤销操作
- 文件的删除和重命名
- .gitignore 配置
- 储藏功能
- 标签操作
练习
- 创建一个新仓库,添加几个文件并提交
- 修改已提交的文件,尝试撤销修改
- 创建一个 .gitignore 文件
- 使用 git stash 储藏工作区
- 创建并管理标签