Git 基本操作(五)

5.基本操作

Git 的工作就是创建和保存项目的快照及与之后的快照进行对比。

Git 常用的是以下 6 个命令:git clone、git push、git add 、git commit、git checkout、git pull,后面我们会详细介绍。

一、核心命令

命令 说明
​git clone 克隆远程仓库到本地
​git push 推送本地提交到远程仓库
​git add 将工作区修改添加到暂存区
​git commit 将暂存区内容提交到本地仓库
​git checkout 切换分支或恢复工作区文件
​git pull 拉取远程更新并合并到当前分支

二、创建仓库

命令 说明
​git init 在当前目录初始化一个新的 Git 仓库
​git clone <repo> 克隆远程仓库到本地

三、提交与修改

命令 说明
​git add <file> 将文件添加到暂存区
​git status 查看仓库当前状态(已修改、已暂存、未跟踪等)
​git diff 比较工作区与暂存区的差异
​git difftool 使用外部工具查看差异
​git range-diff 比较两个提交范围之间的差异
​git commit -m "msg" 将暂存区内容提交到本地仓库
​git reset 回退版本(可重置暂存区或工作区)
​git rm 删除工作区文件并移除出暂存区
​git mv 移动或重命名工作区文件
​git notes 为提交添加或查看注释
​git checkout 切换分支或恢复工作区文件
​git switch 专门用于切换分支(更清晰)
​git restore 恢复或撤销工作区/暂存区更改
​git show 显示 Git 对象的详细信息(如提交、标签)

四、提交日志

命令 说明
​git log 查看提交历史
​git blame <file> 以列表形式显示文件的每一行是谁在何时修改的
​git shortlog 按作者分组生成简洁的提交日志摘要
​git describe 基于最近的标签生成一个可读的字符串描述当前提交

五、远程操作

命令 说明
​git remote 管理远程仓库(添加、删除、重命名等)
​git fetch 从远程获取代码但不合并
​git pull 拉取远程代码并合并到当前分支
​git push 推送本地提交到远程仓库
​git submodule 管理包含其他 Git 仓库的子模块

六、文件状态

1. 工作区 (Working Directory)

  • 实际操作文件的地方。
  • 文件状态:未跟踪 (Untracked) 或 已修改 (Modified)。

2. 暂存区 (Staging Area / Index)

  • 位于 .git/index,临时存放准备提交的内容。
  • 文件状态:已暂存 (Staged)。

3. 本地仓库 (Local Repository)

  • 位于 .git 目录,存储所有提交历史。
  • 文件状态:已提交 (Committed) 后回到已跟踪状态。

状态转换流程

步骤 命令 状态变化
创建新文件 ​touch newfile.txt 未跟踪 (Untracked)
添加到暂存区 ​git add newfile.txt 未跟踪 → 已跟踪 (Tracked)
修改已跟踪文件 ​echo "hi" > newfile.txt 已跟踪 → 已修改 (Modified)
将修改添加到暂存区 ​git add newfile.txt 已修改 → 已暂存 (Staged)
提交到本地仓库 ​git commit -m "msg" 已暂存 → 已提交 (Committed)

使用 git status 随时查看当前文件状态。

七、实例

# 1. 初始化仓库(或克隆远程仓库)
git init
# 或 git clone <url>

# 2. 添加所有文件到暂存区
git add .

# 3. 提交到本地仓库
git commit -m "Initial commit"

八、Git 2.23+ 新命令

  • git switch​:专门用于切换分支,避免 checkout 的多义性。

    • git switch <branch> 切换分支
    • git switch -c <new-branch> 创建并切换新分支
  • git restore:专门用于恢复文件。

    • git restore <file> 从暂存区恢复工作区文件
    • git restore --staged <file>​ 将文件从暂存区撤出(等同于 git reset HEAD)

‍