• Babel 插件通关秘籍
  • Git 原理详解及实用指南
  • Nest 通关秘籍
  • React 通关秘籍
  • TypeScript 全面进阶指南
  • TypeScript 类型体操通关秘籍
  • 现代CSS
  • Babel 插件通关秘籍
  • Git 原理详解及实用指南
  • Nest 通关秘籍
  • React 通关秘籍
  • TypeScript 全面进阶指南
  • TypeScript 类型体操通关秘籍
  • 现代CSS
  • Git 原理详解及实用指南

    • 1.什么是版本控制系统(VCS)
    • 2.什么是分布式版本控制系统(DVCS)
    • 3.上手 1:新公司用 Git 管理代码,怎么快速上手?
    • 4.上手 2:团队工作的基本工作模型
    • 5.进阶 1:HEAD、master 与 branch
    • 6.进阶 2:push 的本质
    • 7.进阶 3:merge:合并 commits
    • 8.进阶 4:Feature Branching:最流行的工作流
    • 9.进阶 5:关于 add
    • 10.进阶 6:看看我都改了什么
    • 11.高级 1:不喜欢 merge 的分叉?用 rebase 吧
    • 12.高级 2:刚刚提交的代码,发现写错了怎么办?
    • 13.高级 3:写错的不是最新的提交,而是倒数第二个?
    • 14.高级 4:比错还错,想直接丢弃刚写的提交?
    • 15.高级 5:想丢弃的也不是最新的提交?
    • 16.高级 6:代码已经 push 上去了才发现写错?
    • 17.高级 7:reset 的本质——不止可以撤销提交
    • 18.高级 8:checkout 的本质
    • 19.高级 9:紧急情况:「立即给我打个包,现在马上!」
    • 20.高级 10:branch 删过了才想起来有用?
    • 21.额外说点:.gitignore——排除不想被管理的文件和目录
    • 22.总结

进阶 5:关于 add

前面说过了可以通过 add 来把改动的内容放进暂存区。这一节关于 add 再多说两点。都是基础的东西,但对新学 Git 的人可能有些用处。

1. add 后面加个点 ".":全部暂存

add 指令除了 git add 文件名 这种用法外,还可以使用 add . 来直接把工作目录下的所有改动全部放进暂存区:

git status

git add .
git status

这个用法没什么特别的好处,但就一个字:方便(咦?)。你在用的时候会更加深刻地体会到。

2. add 添加的是文件改动,而不是文件名

假如你修改了文件 a.txt,然后把它 add 进了暂存区:

git add a.txt
git status

然后你又往 a.txt 里写了几行东西。这时候你再 status 一下的话:

git status

你会发现你的 a.txt 既在 "Changes to be commited" 的暂存区,又在 "Changes not staged for commit"。不用觉得奇怪,这是因为通过 add 添加进暂存区的不是文件名,而是具体的文件改动内容。你在 add 时的改动都被添加进了暂存区,但在 add 之后的新改动并不会自动被添加进暂存区。在这时如果你提交:

git commit

那么你那些新的改动是不会被提交的。

这种逻辑也许会让新学 Git 的人有点困惑和感到麻烦,但当你使用 Git 一段时间后,你会发现这种设计很巧妙,而且不但不麻烦,还很方便。具体的原因我就不长篇大论地说了,你以后慢慢体会吧。

上次更新: 6/21/25, 9:42 AM
贡献者: YNight
Prev
8.进阶 4:Feature Branching:最流行的工作流
Next
10.进阶 6:看看我都改了什么