这节课我们教几个使用的小技巧,然后下一讲就讲解 Git 最为耀眼的特性——分支。
第一个小技巧就是修改最后一次提交。
实际开发中,你可能会遇到下边这两种情况:
Situation One:版本刚一提交(commit)到仓库,突然想起漏掉两个文件还没有添加(add)。就好比你是老司机,说开车就开车,到了半路发现还有俩乘客没上来……
Situation Two:版本刚一提交(commit)到仓库,突然想起版本说明写得不够全面,无法彰显你本次修改的重大意义……
辣么遇到上边这两种情况,你都避免不了要头疼。但记住一点,只要是在本地发生的事情,大多数情况下我们都是有办法恢复滴。
有同学猛地虎躯一震,似乎想起来什么
没错,在 Git实用教程 4.0:回到过去 中我们讲到可以用 reset 命令回到过去。
但这有点像我们打游戏打不过 BOSS,退回最近存档重练的赶脚……对于希望“一次通关”的完美主义者来说多少有点不爽!那么有没有一步到位的方法呢?
答案是肯定的,可以执行带 --amend 选项的 commit 命令,Git 会“更正”最近的一次提交。
案例还是前边的 MyProject2(别问我为嘛不整点 niubi 轰轰的栗子,因为那样你就会忙着去看代码而忘了学 Git 了!就像你们去车展,难道是去看车的吗?)
回顾一下,上次经我们这么一折腾,仓库里总共提交了两个版本:
然后为了演示 diff 命令,我们将 README.md 文件改了又改,最后三棵树是酱紫:
这时,我们希望将暂存区域的 README.md 文件进行提交,但又没必要为此增加一个新的版本(你说是吧)。
怎么办呢?执行 git commit --amend 命令修改最后一次提交即可。
执行命令后会立刻跳转到下边界面:
大家看到了最上面黄色文字就是最后一次提交的说明,按下键盘上的 I,就会变成:
在走下角多了一个 INSERT,这时就可以插入文字修改说明了。修改了之后,按下 Esc,然后 按下快捷键 Shift + z + z(其实就是连续两个大写 Z)来退出。
其实进入的界面是让你编辑提交说明而已,如果你 commit 的时候没有 -m 选项,都会进入这么一个窗口让你填写说明。
So,如果需要修改提交说明,那么可以执行 git commit --amend -m "新的提交说明" 命令。
如果不需要修改,请按下快捷键 Shift + z + z(其实就是连续两个大写 Z)来退出,或者可以按下冒号(:),然后输入 q! 退出。那么会 Git 会保留旧的提交说明。
此时,Git 仓库中仍然只有两个版本:
暂存区域的内容也提交上去了: