git add

文章目录

    • [1. 简介](#1. 简介)
    • [2. 格式](#2. 格式)
    • [3. 选项](#3. 选项)
    • [4. 示例](#4. 示例)
      • [4.1 添加单个文件](#4.1 添加单个文件)
      • [4.2 添加多个文件](#4.2 添加多个文件)
      • [4.3 添加所有文件(常用)](#4.3 添加所有文件(常用))
      • [4.4 添加指定类型文件](#4.4 添加指定类型文件)
      • [4.5 添加整个目录](#4.5 添加整个目录)
      • [4.6 交互式添加部分修改](#4.6 交互式添加部分修改)
      • [4.7 强制添加被忽略的文件](#4.7 强制添加被忽略的文件)
      • [4.8 查看暂存区改动](#4.8 查看暂存区改动)
    • [5. 注意事项](#5. 注意事项)
    • [6. 小结](#6. 小结)
  • 参考文献

1. 简介

git add 的核心作用是将工作区(Working Directory)中修改、新增或删除的文件,添加到暂存区(Staging Area) ,为下一次 git commit 做准备。

你可以把 git add 想象成一个 "挑选器",让你有选择地决定哪些改动需要被记录到下一次提交中。

2. 格式

bash 复制代码
git add [options] [--] [<pathspec>...​]

3. 选项

shell 复制代码
-A, --all, --no-ignore-removal
  添加所有文件的修改(包括新增、修改、删除),推荐使用
. (点号)
  添加当前目录及其子目录下所有新增和修改的文件(不包括删除操作)。注意:2.x 版本开始,可以添加删除的文件
-u, --update
  只添加已跟踪文件的修改和删除(不包括新增文件)
-p, --patch
  交互式选择,将文件修改拆分成小块,有选择地暂存
-f, --force
  强制添加,即使文件被 .gitignore 忽略
-v, --verbose
  显示被添加的详细文件列表
-i, --interactive
  进入交互式界面,按需选择要添加的变更
-n, --dry-run
  模拟执行,显示哪些文件会被添加,但不实际执行
--ignore-errors
	在处理某些文件时遇到错误(如权限不足、文件损坏等),忽略这些错误,继续添加其他能正常处理的文件。该命令仍将以非零状态退出。可以设置配置变量"add.ignoreErrors"为"true"以使此为默认行为。

4. 示例

4.1 添加单个文件

bash 复制代码
git add main.go

4.2 添加多个文件

bash 复制代码
git add main.go utils.go

4.3 添加所有文件(常用)

bash 复制代码
# 添加当前目录及其子目录下所有新增和修改的文件(不包含删除)
# Git 2.x 版本开始,可以添加删除的文件
git add .

# 添加全仓库所有变更(包含删除,推荐)
git add -A

4.4 添加指定类型文件

bash 复制代码
git add *.go

4.5 添加整个目录

bash 复制代码
git add internal/

4.6 交互式添加部分修改

bash 复制代码
git add -p main.go

Git 会逐个展示修改的"代码块",询问是否暂存,可回答:

复制代码
- y:暂存当前块
- n:不暂存
- s:拆分成更小的块
- e:手动编辑
- q:退出

4.7 强制添加被忽略的文件

bash 复制代码
git add -f config/local.env

4.8 查看暂存区改动

bash 复制代码
git diff --staged

5. 注意事项

注意事项 说明
工作目录影响 git add . 只影响当前目录及子目录,建议在仓库根目录执行
误添加可撤销 git restore --staged <file> 可将文件从暂存区移出
敏感文件 避免用 -f 强制添加 .gitignore 中的文件(如 .env)
提交前建议检查 用 git status 和 git diff --staged 确认暂存内容是否符合预期

6. 小结

git add 是 Git 提交的第一步,用于将工作区的改动"挑选"到暂存区。

日常推荐使用 git add -A 确保所有变更都被记录,用 git status 和 git diff --staged 确认后再提交。


参考文献

Git - git-add Documentation

相关推荐
挖掘狂人1 天前
Git 从 0 到 1:用一个小项目走完 add / commit / reset / merge / rebase / push
git·后端·github
codigger1 天前
Git 三区域模型:把 add、commit、reset、merge 一次讲透
git·github·编程·编程语言
水饺编程1 天前
第1章:开发环境搭建,在 Windows 中安装 Git
linux·c语言·汇编·git·ubuntu
idanzk1 天前
Git 推送 GitHub 报 SSL_READ /src refspec main 不匹配 完整踩坑记录
git·github·ssl
星恒随风1 天前
Linux开发工具详解(二):Git版本控制、GitHub协作与GDB调试实战
linux·笔记·git·学习·github
寺中人2 天前
Xshell 完全入门指南:从安装到实战,远程连接+文件传输+会话管理全拆解
git·ssh·github·php·远程连接·xshell·运维工具
酬谢神明则必安2 天前
git学习记录01
linux·git·学习
lingchen19062 天前
版本控制 Git源代码项目管理
git
虫无涯2 天前
Coverity 如何结合 GJB8114-2013使用?
git·单元测试·嵌入式测试·coverity·静态扫描
喵本喵叁肆2 天前
Git 深度解读:从对象模型到分支指针,把版本控制的内核讲透
git