鉴于GitHub提供了适用于Mac和Windows的 GUI应用程序,从命令行学习使用git有什么好处?
目前,我正在使用他们的Mac应用程序更新存储库,到目前为止,它似乎可以满足我的需求。我可能会错过什么?
鉴于GitHub提供了适用于Mac和Windows的 GUI应用程序,从命令行学习使用git有什么好处?
目前,我正在使用他们的Mac应用程序更新存储库,到目前为止,它似乎可以满足我的需求。我可能会错过什么?
Answers:
我认为这个问题只是“为什么我应该学习存在GUI替代方案的任何CLI?”的特例。我怀疑后一个问题与GUI一样古老,并且我认为多年来已经有很多尝试来回答它。我可以通过自己对这个问题的答案来弄清楚自己的方式,但是尼尔斯蒂芬森(Neal Stephenson)十多年前在他的引人注目的文章《开始……是命令行》中表达了我所同意的“最终答案” 。
尽管本文涉及计算的许多方面,甚至斯蒂芬森本人也认为现在很多计算已过时,但本文以极具吸引力的方式解释了CLI是更好的GUI的哪些方式,从根本上改变了我的生活。读的书很长(约40页),但是我对任何提出像您在这里提出的问题的人都不太推荐。
最后,尽管我会以类似的方式回答任何CLI与GUI之类的问题,但我认为我的回答尤其适用于您的特定问题,因为您选择询问所有计算机问题git
。git
可以这么说,它是计算机工具列表中最新的工具,确实值得史蒂芬森的论文中描述的洞洞比喻。git
与其他一些类似Unix的东西一样,也是完全了解CLI的原因。有时尽管瓷器不固定;有时是因为它。
所以,是的,对于OSX或什至仅在其网站上,您绝对可以使用github的GUI进行工作。是的,它实际上非常时尚,我经常使用该网站的功能。但是,不,当您的右手小指悬挂在一git filter-branch
两秒钟的疯狂命令之上时,您将永远不会有上帝的感觉。如果我只需要保留自己在计算方面的经验中的一件事,那就是心理挑战,在凌晨2点在数据中心形成的亲密友谊,无限的能力提升能力,触动用户的生活以及掌控珍贵数据的PB,那么工作和舒适的生活-只保留一件事 -那就是上帝的感觉。
如果您的所有需求都得到满足,很棒,不需要深入了解git,那么您的时间就会花在学习实际需要的东西上。
git只是一种工具,当您需要使用GUI应用程序做某事时,您会知道的。只要记住github!= git。
仅当您不小心使存储库进入怪异状态并想对其进行修复时,大多数仅CLI的功能才起作用。另一方面,使您的仓库进入怪异状态的最常见方法是使用您不了解的高级功能。如果您坚持使用GUI提供的功能,那么99%的时间都可以满足您的需求。
您可能要学习CLI的另一个原因是它是git的通用语言。这意味着尽管许多人在不同平台上使用不同的GUI,但是如果您在StackOverflow或其他地方寻求帮助,答案很可能会以CLI命令的形式出现。如果您不知道CLI,则获得帮助的选项将受到更多限制。
GUI应用程序依靠手动交互来执行复杂的行为。这对于设置项目和开发新事物非常有用。
命令行界面(CLI)的好处来自能够创建可以自动执行的预定脚本的功能。GitHub的所有GUI都是一些漂亮的图形和精美按钮,它们称为git CLI。
GUI应用程序不会为您执行的操作是每天凌晨1:30在服务器上自动更新存储库的主干,但是调用git CLI的cron作业是设置它的一种非常简单的方法。
此外,在团队中进行项目工作时,可以方便地设置安装脚本,构建脚本,部署脚本等,以便队友可以专注于解决问题,而不必进行繁琐的重复任务。
最近,我不得不深入研究Git,以帮助进行SVN到Git的迁移。我了解到的是,Git命令行工具并不是学习的复杂部分。
Git背后的概念和想法是复杂的部分(并不是因为它们设计不当,而仅仅是因为它们对于来自其他集中式VCS的大多数人来说是陌生的)。
一旦掌握了这些概念,实际的命令行语句就会变得相对容易。这意味着UI并不能真正帮助您理解 Git(最简单的操作除外)。
git
是如此简单,以至于人们无法理解它们-他们正在寻找更艰难的东西。
当您在某种无法使用GUI应用程序的环境中(不是)时,知道CLI会很方便。
一种潜在的情况:您需要在封闭的位置上的项目中提供几天的帮助,在这个位置很难将新工具插入系统中。他们仅使用CLI。您的生产力受到了很大的打击,因为您需要重新学习所有内容。
学习命令行git的原因之一是,大多数文档都是针对该环境编写的。另外,如果您问一个问题:“我如何用git做X?”,答案很可能包含命令行命令。
使用GUI而不是命令行的主要问题之一是,在大多数情况下,您无法对流程进行相同的控制。例如,GitHub应用程序在许多git工作流程的可用性方面都很棒,但对于高级git流程而言仍然很麻烦。
举例来说,有些事情我还没有弄清楚如何使用GitHub应用程序来做(另一件事要注意的是,每个GUI都有学习曲线)。
最后,CLI允许用户在编写脚本时使用这些工具。
我刚刚了解了一种情况,其中CLI可以比GUI更好。为了说明这一点,我从一本书git中获取了一个示例-每个人的版本控制。
如果要通过Intranet共享,则可以使用:
查看创建裸仓库的步骤。
除了--bare参数之外,用于创建裸仓库的命令与用于克隆仓库的命令相同,这会有所不同。
git clone --bare C:\Users\raviepic3\Desktop\Workbench C:\generic_share\
Bare_Workbench
在控制台中执行前面的代码,应在您的通用共享文件夹generic_share中创建工作台存储库的裸克隆。
使用GUI从现有存储库创建裸克隆是一个简单的过程。您需要做的是:
从现有存储库中复制.git目录,并在存储库外部粘贴一个different_name.git(您要给新的裸存储库提供的名称)。在我们的例子中,我们在C:\ Users \ raviepic3 \ Desktop \下有一个名为Workbench的裸仓库,其中包含content.docx。现在,我想使用GUI从此创建一个新的裸存储库。我将复制C:\ Users \ raviepic3 \ Desktop \ Workbench.git并将其粘贴为C:\ generic_share \ Bare_Workbench.git。
config file
使用文本编辑器打开 内部Bare_Workbench.git,找到显示该行的行, bare = false
并将字符串false替换为true。
保存并退出。
在GUI中,您必须单击多次,并记住要编辑的文件。在CLI中,一个简单的命令即可为您完成所有操作。