添加与提交文件
本教程共 26 篇 · 第 5 篇 · 更新于 2026-07-29 · 约 7 分钟阅读
5. 添加与提交文件
本节目标:熟练使用 git add 和 git commit,掌握 git status 查看状态,能处理文件的增删改和重命名。
git status:随时掌握仓库状态
在讲 add 和 commit 之前,先认识 git status。它是你用得最多的命令,随时告诉你仓库里发生了什么。
git status
干净的仓库输出:
On branch main
nothing to commit, working tree clean
有改动的仓库输出:
On branch main
Changes not staged for commit:
modified: readme.txt
Untracked files:
LICENSE
Changes not staged for commit:已跟踪文件被改了,还没暂存Untracked files:新文件,Git 还没跟踪
Tip
git status -s输出更简洁。M表示修改,A表示新增,??表示未跟踪。
git add:把改动放进暂存区
git add 有两个作用:让 Git 开始跟踪新文件,或者把已跟踪文件的改动放进暂存区。
添加单个文件:
git add readme.txt
添加当前目录所有改动:
git add .
添加所有 .txt 文件:
git add *.txt
Note
git add .会把当前目录及子目录的所有改动都加进去。想排除某些文件,后面会讲.gitignore。
git commit:把暂存区写入版本库
暂存区准备好了,执行 commit:
git commit -m "add readme and license"
输出:
[main abc1234] add readme and license
2 files changed, 10 insertions(+)
create mode 100644 readme.txt
create mode 100644 LICENSE
-m 后面是提交说明,写清楚这次改了什么。
Warning不要写
git commit -m "update"或者"fix bug"这种没意义的说明。未来的你会感谢现在的你。
跳过暂存区直接提交
如果你确定所有已跟踪文件的改动都要提交,可以用 -a 跳过 git add:
git commit -a -m "update all tracked files"
注意:-a 只包含已跟踪文件。新文件(untracked)不会被提交。
git rm:从仓库删除文件
要从 Git 中删除文件,用 git rm:
git rm old-file.txt
这会把文件从暂存区和工作区都删掉。提交后,文件就不再被跟踪了。
如果只想从 Git 删除,但保留本地文件:
git rm --cached old-file.txt
Warning如果文件已经修改过但还没提交,
git rm会拒绝删除。加-f强制删除,但改动会丢失。
git mv:重命名文件
Git 不显式跟踪重命名,但提供了 git mv 命令:
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 会自动识别这是一次重命名操作。
常见操作速查
| 场景 | 命令 |
|---|---|
| 查看状态 | git status |
| 添加单个文件 | git add file.txt |
| 添加所有改动 | git add . |
| 提交 | git commit -m "说明" |
| 删除文件 | git rm file.txt |
| 仅取消跟踪 | git rm --cached file.txt |
| 重命名 | git mv old new |
这章学到了什么
git status随时查看仓库状态git add把改动放进暂存区git commit -m把暂存区写入版本库git commit -a跳过暂存区直接提交已跟踪文件git rm删除文件,git mv重命名文件
下一章,我们学习如何查看差异和历史记录。