@
troywinter GUI 下层还是会调用命令行,但是 GUI 会把常用的复杂操作自动化。你可以把 GUI 等效看做一个 CLI 的半自动化脚本。
我举个例子,把一个分支下的提交 rebase 到另一个 tag 下并做 3-way 冲突处理。这个过程不管用 GUI 还是用 CLI 都必须手动做,完全不会享受到命令行批量处理的好处,而 GUI 下只要点点鼠标就可以从不同的分支里选出不同的代码行。用 CLI 你最后不还要打开 VIM 这个图形界面工具。
所以光这个操作就省下 GUI 用户大量的时间,而这个操作又正好是大流量开源软件和 modder 必须要用到的。
还有一个操作,是局部 stage ,可以把一个修改过的文件中的少部分行 stage ,剩下的留在 working dir 里,又或者是像做 3-way 合并一样选择性地把一些行或者一些字 revert 。你用命令行当然也可以这么做,先把文件复制出来备份,然后把部分行改回去,然后 add 提交,再把备份文件移动回来。
-----
当人们对这些操作没有需求的时候,总会觉得命令行效率高。等没法满足的时候,再去写一下半自动化脚本,重新实现一些 GUI 已经实现的功能,然后再把 GUI 批判一番。就,很没有意思的争论。类似的争论我好几年前就在隔壁 ruby-china 论坛参与过了,一堆坚持不用 GUI 但照样用着命令行版 GUI 的人在跟我争。真当字符画出来的窗口不算窗口啊。