首页 / Git 入门教程 / 添加与提交文件

Git 入门教程

添加与提交文件

本教程共 26 篇 · 第 5 篇 · 更新于 2026-07-29 · 约 7 分钟阅读

GitGit 入门教程git addgit commitgit statusgit rmgit mv

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 重命名文件

下一章,我们学习如何查看差异和历史记录。