前言
主要都是一些不太常用的东西,有些感觉这辈子都不会用到。很多东西都是可以通过良好的习惯避免出现使用这些东西的使用情景的,用对的方式做事真的很重要。
6.1 Git 工具 - 修订版本(Revision)选择
这节我也就觉得通过双点语法指明一定范围的提交有用,下面是一个该语法可能最常用的用法的示例:
$ git log origin/master..HEAD // 这条命令显示任何在你当前分支上而不在远程 origin上的提交
6.2 Git 工具 - 交互式暂存
交互式暂存这个还是很有用的,因为我们可以以交互式的方式修改已暂存的文件和已修改且已跟踪但为暂存的文件。当然,如果我们真的有这个需求的话。目前的话,其实大部分情况下,我们都是修改完文件,一股脑就提交了。而且如果养成很好的提交习惯的话,比如完成一个功能就提交,用到这东西的机会还是很少的。不过这东西本身还是挺好用的。
6.4 Git 工具 - 重写历史
你可以重写已经发生的提交以使它们看起来是另外一种样子,这个包括改变提交的次序、改变说明或者修改提交中包含的文件、将提交归并、拆分或者完全删除。
对这个功能,我觉得真要用的话,有些吃力不讨好的感觉。Why ? 因为这个功能本身涉及到的一些概念就让人困惑,而且,即使你弄明白了,在你具体做时,也非常可能出现错误。
关于这个功能最常用的情景应该就是改变最近一次提交了,至于剩下的修改多个提交说明,重排提交,压制(Squashing)提交,拆分提交,我觉得我们不会用到,因为用到这些功能的情况完全是可以通过良好的提交习惯提前避免的。另外,即使需要用到,我也不会去做。
最后,简单说说他们的原理,可以这样理解,每一个提交就是一个 patch,然后这些功能就是把这些 patch 重新走一遍,每走完一个 patch,就给你一次对这个 patch 进行修改的机会。
6.5 Git 工具 - 使用 Git 调试
二分查找
看起来确实很棒。但我们应该用不到。