日常流程——状态、添加、提交、日志
用 GIT 的时间里,九成花在这四条命令上。顺便学会一次提交该装什么,以及怎么写值得一读的提交信息。
学习目标
- 能顺畅地反复走 status → add → 这套流程
- 能判断一次提交里该装哪些东西
- 能读懂历史并找到想要的那个提交
这一步沿用第 2 步的三个区域: → (git add) → → (git commit) → 。 日常流程很简单:用 git status 看改了什么,用 git add 挑出这次要提交的,用 git commit 钉住,再用 git log 读一遍历史。工作中一天要重复几十遍,所以这一步的目标就是练到手比脑子快。
一次提交只装一个变更。修登录 时顺手把碍眼的缩进也一起提交了,以后想单独撤销这个修复就办不到了。git add -p 能在同一个文件里只挑一部分入暂存,所以哪怕活儿是一口气做完的,提交时也要养成拆开的习惯。
提交信息是写给未来的自己和同事的信。第一行控制在 50 字左右,说清「做了什么」;需要的话空一行再补「为什么这么做」。像 fix: 修正登录后没有跳回首页的问题 这样加类型前缀(),历史连机器都好读。「修改」「处理一下」这种信息,等于什么都没说。
轻松理解
提交就像相册里配了说明文字的一页。git status 告诉你哪些照片是新的,git add 挑出要放进这一页的照片,git commit 配上说明把它们贴好,git log 则是一页页翻看相册。
本步骤要掌握的命令
别光用眼睛看,去里真敲一遍。手记住了,工作时才使得出来。
git add <file>- 把改过的文件放进暂存区。
git add -p- 在同一个文件里只挑需要的片段入暂存,拆分提交就靠它。
git commit -m "fix: 로그인 리다이렉트 오류 수정"- 把暂存区里的东西钉进历史。写清做了什么,必要时写上为什么。
git log --oneline --graph --all- 一行一个提交,带图地读历史。如果画面停住不结束,按
q退出。
更多选项 — 需要时再展开
已跟踪文件()是 已经知道的文件:它在上一次提交里,或者你已经用 git add 暂存过。新建的文件在 add 之前都是未跟踪文件(untracked),git status 会把它列在 "Untracked files" 下。下面的命令区别在于会收进哪些文件。
git add .- 暂存当前文件夹及其所有中新建、修改和删除的文件。
git add -A- 不管你在哪个文件夹,都暂存整个仓库的全部改动(新建、修改、删除)。
git add -u- 只暂存已跟踪文件的修改和删除,新建的(untracked)文件不包括在内。
git commit- 不加
-m时,Git 会打开文本让你写说明:第一行是标题,空一行后写详细内容,保存并关闭编辑器即完成提交。 git commit -m "title" -m "body"- 每个
-m是一个段落——第一个是标题,第二个是正文。 git commit -am "message"- 把所有修改或删除过的已跟踪文件一次性暂存并提交。新文件不会包括在内,请先
git add。
常见错误和改正方法
运行 git commit 时没加 -m,结果被困在一个陌生的编辑器界面里。如果是 Vim,先按 Esc,再输入 ZZ(大写 Z 按两次),就能保存信息并退出。如果是界面底部显示 ^X Exit 的 ,就依次按 +O、Enter、Ctrl+X。下次直接用 -m 在里写好信息。
这一栏由你自己标记,这里不打分。
要把这一阶段标记为已理解吗?
目前还不能取消,请在真正理解后再标记。
已标记为理解
这一栏由你自己标记,这里不打分。