几周后,我将向一群科学家发表演讲,向他们介绍 VCS(或试图激励他们为已经了解的人使用 VCS)。我担心的一件事是,当人们习惯了 GUI 时,他们会用一堆命令行工具吓跑他们。因此,我试图思考 GUI 相对于命令行工具为 VCS 用户提供了哪些优势,但我真的想不出很多。
除了明显的“留在你的舒适区”之外,还有什么好处,比如使用鼠标而不必记住命令?
一般的答案很好,但也欢迎针对特定 VCS 或 GUI 的答案(我将使用 git 作为主要示例进行演讲)。
几周后,我将向一群科学家发表演讲,向他们介绍 VCS(或试图激励他们为已经了解的人使用 VCS)。我担心的一件事是,当人们习惯了 GUI 时,他们会用一堆命令行工具吓跑他们。因此,我试图思考 GUI 相对于命令行工具为 VCS 用户提供了哪些优势,但我真的想不出很多。
除了明显的“留在你的舒适区”之外,还有什么好处,比如使用鼠标而不必记住命令?
一般的答案很好,但也欢迎针对特定 VCS 或 GUI 的答案(我将使用 git 作为主要示例进行演讲)。
我沉迷于命令行,但我发现提交历史的 GUI 表示形式比git log --graph
. GUI 允许用户直接从历史视图分析和操作存储库,这比复制/粘贴哈希、从 HEAD 倒数或查找正确的管道命令等更方便。GUI 还为用户提供了更好的配置设置界面。(我已经记不清有多少次因为没有转义引号或其他东西而搞砸了设置。)
你提到不必记住命令并留在舒适区,但我认为对于像 Git 这样复杂的工具来说,这些是相当重要的一点。有无数个 Git 命令,有无数个选项,其中一些但不是全部适用于多个命令(--dry-run
,任何人?),还有一些但不是全部使用不同的格式(-n 1
与-1
?)。git help
对于大多数用户来说,像在他们使用的每个其他程序中一样单击一个按钮比在您不记得是否应该使用master..origin/master
ormaster origin/master
或时浏览要直观和方便得多origin master
。(作为一个极客,略过git help
是我乐趣的一部分,但对于我工作中使用 GUI 的任何队友来说,情况并非如此。他们认识到 Git 简化了他们的工作流程,但他们不想花太多心思在工具本身上。他们只是想把事情做好。)
好吧,“我”认为:
1) 命令行不提供任何“预防性控制”,2) 命令行不能引导用户,只能提出在特定情况下可以执行的有限命令集。好吧,不如 GUI 做的那么好。
两个极端的类比来解释:
你能想象通过一堆命令行驾驶飞机吗?从技术上讲,这应该是可能的,但是如果没有驾驶舱及其监控工具实时为您提供 - 并且不需要您要求 - 您需要驾驶的任何相关信息,很容易想象它会更加困难。像飞机驾驶舱这样的 GUI 可以为您提供对您正在做的事情的预防性控制。它们甚至可以为您提供您无法想象存在的信息,因为您以前从未听说过等效的命令行。
在城市或沙漠中开车时,您是否感觉更舒适?在第一种情况下,路标会给你一些关于你要去哪里的指示,而且由于道路就是道路,所以无论如何你只能选择有限的方式。同样,GUI 充当一组原子命令行的外观,将它们重新组合为单个和连贯的高级操作,在菜单中描述为路标。在第二种情况下,你几乎可以去任何地方——可能是在错误的方向——并且你必须自己追踪自己的方式,安排自己的检查点。这与命令行相同。
我认为这些想法也与 VCS 相关。