那些终于弄明白的 Git 日常操作

目录

刚开始用 Git 时,我的习惯是记命令。遇到问题搜索一次,复制一次,偶尔成功,偶尔陷入更混乱的状态。

后来才发现,先弄清楚文件正在哪一层,比记住命令更有用。

三个地方

工作区是正在编辑的文件。暂存区是准备放进下一次提交的内容。提交历史是已经保存的快照。

这三者不是三个文件夹,而是三种状态。同一个文件可以同时有已经提交、已经暂存和尚未暂存的不同改动。

先看状态,再决定动作

# 查看分支和文件状态,确认当前有哪些待处理的修改。
git status

# 查看工作区相对暂存区的差异。
git diff

# 查看暂存区中准备提交的差异。
git diff --staged

这三个命令都是只读的。现在我几乎总会先执行它们,再决定要暂存什么。

让一次提交只表达一件事

如果一次修改同时包含修复错误、格式调整和新功能,回头查看历史时就很难理解原因。

拆成有意义的小提交,需要多一点耐心,但对未来的自己和协作者都更友好。

# 按改动块选择要进入暂存区的内容,适合把独立修改拆成不同提交。
git add -p

# 用明确的信息保存这次提交,说明这次修改解决了什么问题。
git commit -m "修复归档页面的日期排序"

不确定的时候先停一下

Git 提供了很多强大的历史修改能力,但日常工作大多数时候只需要少量操作。

不确定一个命令会影响哪里时,先查清楚。尤其是涉及删除、覆盖工作区和改写共享历史的操作,理解后果比快速执行更重要。

工具不需要一次学完。让每一次使用都比上一次更清楚一点,就够了。

搜索文章