GitHub和Gist有什么区别?

795

什么是gist,它与使用GitHub进行常规代码共享/维护有何不同?

enter image description here


226
为什么会被认为是离题了?我认为gist和github都是程序员常用的软件工具,这个问题很适合在这里讨论。 - golem
82
我投票支持重新开放这个问题,因为它与程序员常用的软件工具有关并且很有用。Github上的“Gist简介”页面包含一些有用的信息,但没有回答有关在哪些情况下用户可能更喜欢其中之一的关键差异。我个人希望看到更详细的答案。 - Simon East
10
一个我没看到提到的重要区别是Gist不再支持目录。我只在遇到这个问题时才注意到它: https://dev59.com/c14c5IYBdhLWcg3wqLxe#27677649 - Robotic-Brain
3
我认为最有帮助的是了解_gists_可以做什么,而_github repositories_无法做到的。如果答案是“没有”,那么我将继续使用_github repositories_来完成所有事情。 - Rounin
10个回答

478

GitHub是整个网站。Gists是该网站提供的特定服务,类似于pastebin的代码片段。但是,一切都由Git版本控制驱动,因此gists也具有完整的版本历史记录。


243
Gist和Repository有什么区别?它们各自的优缺点是什么?(我相信这就是原帖发布者想问的问题。) - chharvey
73
一个仓库是用来存储用户创建的文件的。一个代码片段则通常是一个独立的代码块(不一定与其他代码相关),例如用于讨论或演示例子。 - Kerrek SB
23
如Kerrek所说,Gists基本上是Github的Pastebin等价物。 - Phill Healey
48
当然可以。但是这需要你自己管理文件,克隆存储库,提交更改等等。Gists允许您直接在浏览器中编辑文本,并且没有需要管理的文件。就像我说的一样,使用相同的版本控制机制,但满足不同的需求。 - Kerrek SB
31
@SimonEast,GitHub和Gists之间的主要区别在于功能数量和用户界面方面:其中一个旨在具有大量功能和灵活性,非常适合小型和非常大型项目;而Gists仅适用于非常小的项目。例如,Gists支持多文件,但界面非常简单,并且功能受限,因此它们甚至没有文件浏览器、问题、拉取请求或维基。如果您不需要这些功能,Gists是非常好的选择,而且更加低调。就像Stack Overflow中的评论而不是回答一样。 - joseLuís
显示剩余6条评论

201

我对Gist和GitHub的个人看法:

Gist: Gist是一种简单的方式,可以与他人共享代码片段和粘贴内容。当您需要与同事或朋友分享示例代码或技术时,可以使用它。

以及

GitHub: 另一方面,GitHub提供了一个平台,可以将整个项目作为存储库与团队(私有存储库)或全世界(公共存储库)共享。

两者都会记录版本详细信息。


2
你能详细举个例子吗? - Chetan
9
这里有一个gist的示例(请注意,它只是一个单独的文件,并不需要任何支持文件,也不会有人创建票据等等(顺便说一句,那个配置可能已经过时了,所以不要使用它))。还有一个项目的示例,它很小,但是有人可以打开一个建议票据,并提供易于记忆的地址,而不是gist的网址。 - vrillusions

91

GitHub和Gists之间的主要区别在于功能数量和用户界面方面:

GitHub的设计考虑到了大量的功能和灵活性,非常适合小型和大型项目,而Gists仅适用于非常小型的项目。

例如,Gists支持多个文件,但界面非常简单,并且功能受限,因此它们甚至没有文件浏览器、问题、拉取请求或维基。如果您不需要这些功能,Gists非常好用并且更加隐蔽。就像在SO中,评论代替答案一样。

注意:感谢@Qwerty建议将我的评论变成真正的答案。


10
“Gists 适用于文件,repositories 适用于目录。” https://twitter.com/pavelrepin/status/297473901884223488 - Qwerty
16
在我看来,这是目前为止唯一真正的答案。其他回答只是重申了网站的目的,而没有解释哪些特点和区别使其能够实现该目的。这就像说:“这辆车是用来开去海滩的,但这辆车是用来上班开的”,却没有提到海滩车是敞篷车一样。 - DavidS
同意 @DavidS 的最佳答案。所以,如果我去掉“分享”这个时髦词,它告诉我它也非常适合保存我使用的小脚本,例如我刚刚创建的用于为我创建微不足道的YAML文件的Python脚本,无需项目,只需要这个可能需要在5个月后再次找到的文件,可能在另一台计算机上。或者我错过了什么重要的东西? - Otzen

31

我个人了解和使用 Gist 和 GitHub 的方式如下:

  • GitHub

用于大型项目。如果你想要构建网站、开发移动应用或 Web 应用,或者与队友一起完成任务,当然可以使用 GitHub。

  • Gist

更像是一个便签。例如,你可以编写一个小功能的实现并将其分享到博客上,或者记录你对项目的想法并与队友分享。 就像之前的答案所说,Gist 更多用于代码片段。所以通常在项目中,我们使用 GitHub。


6
“备忘录”这个比喻帮助我理解了,否则我就得问“什么是pastebin?” - YCode

27
你可以通过访问以下链接gist.github.com 来获取Gist。另外,您也可以在登录Github帐户后从帐户内访问它,如下图所示:

how to access gist from within the github console

 

:一个托管网站,用于存储基于web的git代码库。它包括所有Git功能,并添加了额外的功能。

 

概述:Gist是Github新增的功能,允许分享代码片段、笔记、待办事项等内容。你可以将Gist保存为私密或公开。私密Gist对搜索引擎隐藏,但对你分享URL的任何人都可见。
例如,如果你想编写一份私密的待办事项清单,你可以使用Github Markdown编写如下:

how to write a private to do list

NB:在破折号和括号之间保留上述空格非常重要。 同样重要的是,您需要使用扩展名 .md 保存文件,因为我们希望Markdown格式正确。 如果不想让其他人看到,请记得将此Gist保存为私有。

 

最终结果看起来如下图所示。复选框是可点击的,因为我们使用扩展名 .md 保存了这个 Gist。

What the to do list looks like if you have formatted it properly


6
如果您不希望其他人看到这个Gist,请记得将其保存为“secret”。请注意,如果其他人恰好拥有该URL,他们仍然可以看到您的私有Gist。请参阅https://help.github.com/articles/about-gists/#secret-gists。 - Gan
这个回答与Gists和Github的区别有什么关系呢?(或者Github仓库 - 问题OP可能真正想问的)这根本没有回答原来的问题。 - JoelAZ
这个答案很好地定义了这两个术语。然后它们之间的区别就清楚了。 - Haniver

8

GitHub Gists

要不要使用Gist,这是一个$64的问题...

GitHub Gists是具有存储库特性的单个(或多个)简单Markdown文件,可以被复制或克隆(如果是公共的)。

否则,如果是私有的,则不能。

有点像一个可以共享的高级便签。

就像我现在正在打字的这个评论便签一样,但更加复杂。

而官方的完整GitHub存储库则是一个源代码src、支持文档(markdown、html或两者兼有)docsroot、图像pngicosvg以及用于运行托管在Jekyll服务器上的Yaml变量的config.sys文件的完整存储库。

一个简单的Gist文件是否支持Yaml前置部分呢?

我认为不支持。

根据官方的GitHub Gist文档...

Gist编辑器由CodeMirror提供支持。

然而,您可以复制公共Gist(或者,如果所有者通过链接授予您对私有Gist的访问权限,则可以复制私有Gist)...
然后,您可以使用Visual Studio Code将该公共Gist嵌入到“official” repo page.md中,如下所示:
“您可以在支持Javascript的任何文本字段中嵌入代码片段,例如博客文章。”
“要获取embed代码,请单击gist的Embed URL按钮旁边的剪贴板图标。”
现在,这是一个很酷的功能。
让我想要搜索(发现)其他人的gists或OPG,并将他们的“公共”工作合并到我的完整工作存储库中。
“您可以通过转到gist主页并单击链接All Gists{:title='Click to Review the Discover Feature at GitHub Gists'}{:target='_blank'}来发现其他人创建的公共gists。” 警告。 GitHub Gist不支持Liquid标记。
我想,如果我找到了有益的东西,我总是可以进行回馈或引用该来源,如果我在我的完整工作存储库中使用了这项工作。
所有公开的gist的作者都在哪里发布了隐含的许可证?
罗伯特
附言。这是一个很好的评论。我想把它变成一个gist,并在GitHub Gists上进行公开搜索。
请注意。在Markdown (.md)文件的正文中嵌入html标记时,您可能会收到来自linter的"MD033"警告。
然而,这不应影响从

1
请花点时间阅读帮助中心中的编辑帮助。在Stack Overflow上进行格式设置与其他网站不同。 - Claudia
此外,GitHub Gist 允许您发布的不仅仅是代码。这里有一个具体的例子,是的,我实际上已经使用 Git 与它一起使用了。(您实际上可以将它们视为来自 Git 客户端的完整存储库,包括额外的分支;您只是没有所有问题管理、基本 Git 网络界面以及其他随之而来的好处,因为它不是在适当的 GH 存储库中。) - Claudia

7
“Gists实际上是Git仓库,这意味着即使您不是原始作者,也可以fork或clone任何gist。您还可以查看gist的完整提交历史,包括差异。”
→ 参考官方GitHub文档 所以关键区别在于它们是单个文件。
哦,还有:如果我理解正确,gists可以是“秘密”的(例如:私人url),即使您不是付费github客户...

6
Gists可以有多个文件。 - antont
很酷,不知道呢! - Frank N
哇,所以我可以克隆我的Gist,例如 git clone https://gist.github.com/jxramos/b227766a5f593b1154449217a656158d,它会在我的文件系统上创建一个名为b227766a5f593b1154449217a656158d的目录,其中包含一个单独的文件semantic_notes.md。在这种情况下,我将尝试在我的Gist上开发,就像在存储库中一样。好好知道。这可能是如何向Gist修订添加注释的方式。从UI编辑器中从未见过如何执行此操作。 - jxramos

4

简单来说:

GitHub 是整个网站。

Gist 是一些特殊的服务。

两者的使用:

Gist 是与他人共享代码片段和粘贴内容的简单方法。

GitHub 是一个用于版本控制和协作开发项目的代码托管平台。

Github 的优势:

提供文档、讨论、已知漏洞和曝光的安全警报等服务。

Gist 的优势:

由于每个“gist”都有自己的 Git 存储库,因此可以在一个粘贴中包含多个代码片段,并且可以使用 Git 进行推送和拉取操作。


2

GISTS Gist是由GitHub提供的一个卓越服务。使用此服务,您可以公开或私下分享您的工作。您可以分享单个文件、文章、完整应用程序或源代码等。

GitHub不仅仅是Gist。它提供了强大的服务,将项目或程序的数字资源集中在一个称为存储库的中心位置,并与利益相关者分享。GitHub存储库将保存或维护文件的多个版本或更改历史记录,并且您可以在需要时检索特定版本的文件。而gist将每个帖子创建为新存储库,并维护文件的历史记录。


1
github允许用户在一个目录下(称为存储库)对一堆文件进行版本控制。用户可以创建任意数量的存储库。因此,整个目录(存储库)上的所有修改(创建/删除/修改)都被列为一个修订历史记录。
gist允许用户以Markdown格式对单个文件进行版本控制。用户可以创建任意数量的文件。这里每个文件的修改都会分别列在用户的修订历史记录中。
一般来说,github用于维护与一个任务相关的大量文件和目录。例如项目的软件代码、网站文件、特定主题的文档文件等。而gist用于以Markdown格式维护任务的个人笔记。
在高层次上,创建gist中的文件相当于在github中创建一个单文件存储库。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接