跳到主要内容

Git 基础操作

本章将介绍 Git 的基本操作,包括创建仓库、添加文件、提交修改等。

Git 工作流程

Git 有三个主要区域:

  • 工作区(Working Directory):你正在编辑的文件
  • 暂存区(Staging Area):准备提交的文件列表
  • 版本库(Repository):已提交的版本历史

工作流程:

  1. 在工作区修改文件
  2. 将需要的文件添加到暂存区
  3. 将暂存区的内容提交到版本库

创建仓库

初始化新仓库

# 创建新目录
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

小结

本章我们学习了:

  1. Git 的工作流程(工作区、暂存区、版本库)
  2. 创建和克隆仓库
  3. 查看状态和差异
  4. 添加文件和提交修改
  5. 撤销操作
  6. 文件的删除和重命名
  7. .gitignore 配置
  8. 储藏功能
  9. 标签操作

练习

  1. 创建一个新仓库,添加几个文件并提交
  2. 修改已提交的文件,尝试撤销修改
  3. 创建一个 .gitignore 文件
  4. 使用 git stash 储藏工作区
  5. 创建并管理标签