Git GUI为VCS用户提供了哪些优势?

Git GUI为VCS用户提供了哪些优势?,git,user-interface,version-control,Git,User Interface,Version Control,几周后,我将向一群科学家做一次演讲,向他们介绍VCS(或者试图激励他们为那些已经知道的人使用VCS)。我担心的一件事是,当人们习惯于GUI时,用一堆命令行工具吓跑他们。因此,我试图思考GUI为VCS用户提供了哪些优于命令行工具的优势,但我真的想不出有多少优势 除了明显的“呆在舒适区内”的优点,比如使用鼠标和不必记住命令,还有什么其他的优点吗 一般的答案是好的,但是特定于特定VCS或GUI的答案也是受欢迎的(我将使用git作为主要示例进行演讲)。我沉迷于命令行,但我发现提交历史的GUI表示比git

几周后,我将向一群科学家做一次演讲,向他们介绍VCS(或者试图激励他们为那些已经知道的人使用VCS)。我担心的一件事是,当人们习惯于GUI时,用一堆命令行工具吓跑他们。因此,我试图思考GUI为VCS用户提供了哪些优于命令行工具的优势,但我真的想不出有多少优势

除了明显的“呆在舒适区内”的优点,比如使用鼠标和不必记住命令,还有什么其他的优点吗


一般的答案是好的,但是特定于特定VCS或GUI的答案也是受欢迎的(我将使用git作为主要示例进行演讲)。

我沉迷于命令行,但我发现提交历史的GUI表示比
git log--graph
更直观。GUI允许用户直接从history视图分析和操作存储库,这比复制/粘贴哈希、从头开始计数或查找正确的管道命令等更方便。GUI还为用户提供了更好的配置设置界面。(我已经记不清有多少次我因为没有逃过引号之类的东西而把设置搞砸了。)


您提到了不必记住命令并保持在舒适区内,但我认为这对于像Git这样复杂的工具来说是相当重要的一点。Git命令数不胜数,选项数不胜数,其中一些但不是全部应用于多个命令(
-dry run
,any?),还有一些但不是全部使用不同的格式(
-n1
-1
?)。对于大多数用户来说,当您记不起是否应该使用
master..origin/master
master origin/master
origin master
时,单击他们对其他程序所做的按钮比浏览
git help
要直观和方便得多。(作为一个极客,浏览
git-help
是我乐趣的一部分,但对我的任何使用GUI的同事来说都不是这样。他们认识到git简化了他们的工作流程,但他们不想花太多心思在工具本身上。他们只想把事情做完。)

我沉迷于命令行,但是我发现提交历史的GUI表示比git log--graph更直观。GUI允许用户直接从history视图分析和操作存储库,这比复制/粘贴哈希、从头开始计数或查找正确的管道命令等更方便。GUI还为用户提供了更好的配置设置界面。(我已经记不清有多少次我因为没有逃过引号之类的东西而把设置搞砸了。)

您提到了不必记住命令并保持在舒适区内,但我认为这对于像Git这样复杂的工具来说是相当重要的一点。Git命令数不胜数,选项数不胜数,其中一些但不是全部应用于多个命令(
-dry run
,any?),还有一些但不是全部使用不同的格式(
-n1
-1
?)。对于大多数用户来说,当您记不起是否应该使用
master..origin/master
master origin/master
origin master
时,单击他们对其他程序所做的按钮比浏览
git help
要直观和方便得多。(作为一个极客,浏览
git help
是我乐趣的一部分,但对于我的任何使用GUI的同事来说都不是这样。他们认识到git简化了他们的工作流程,但他们不想花太多心思在工具本身上。他们只想把事情做好。)

好吧,我认为:

1) 命令行不提供任何“预防性控制”, 2) 命令行不能通过仅建议在特定情况下可以执行的有限命令集来指导用户。嗯,不像GUI那样好

用两个极端的类比来解释:

你能想象驾驶一架飞机通过一堆命令行吗?从技术上讲,这应该是可能的,但是如果没有驾驶舱及其监控工具实时地为您提供驾驶所需的任何相关信息,并且不需要您询问,那么很容易想象这会变得更加困难。GUI(如飞机驾驶舱)为您提供了对所做事情的预防性控制。它们甚至可以给您提供您无法想象的信息,因为您以前从未听说过等效的命令行

当你在城市或沙漠中开车时,你会觉得更舒适吗?在第一种情况下,路标会告诉你要去哪里,因为道路就是道路,所以你的道路选择是有限的。同样,GUI在一组原子命令行上充当门面,将它们重新组合成单个命令行,并将高级操作(如菜单中的路标)联系起来。在第二种情况下,你几乎可以去任何地方——可能是错误的方向——你必须自己追踪自己的路线,安排自己的检查点。这与命令行相同

我认为这些想法也与VCS相关。

嗯,“我”认为:

1) 命令行不提供任何“预防性控制”, 2) 命令行不能通过仅建议在特定情况下可以执行的有限命令集来指导用户。嗯,不像GUI那样好

用两个极端的类比来解释:

你能想象驾驶一架飞机通过一堆命令行吗?这在技术上应该是可能的,但是如果没有驾驶舱和它的监控工具给你实时的-并且不需要你要求-任何你需要驾驶的相关信息,很容易想象它会