了解Git和GitHub的基础[关闭]


201

我不完全了解使用Git或Github的目的;我知道它有助于跟踪您的更改,并且对与他人合作的人很有帮助,但是我不与任何人合作,所以我不知道这是否对我有帮助。

我通常以网页设计师/开发人员的身份工作,但我从来不需要合作。我知道在Git中您可以为每个存储库创建,推送,提交,创建分支等,但是...

  1. Git和GitHub有什么区别?

  2. git是否将每个存储库都保存在本地(在用户计算机中)和GitHub中?

  3. 您可以在没有GitHub的情况下使用Git吗?如果是,使用GitHub有什么好处?

  4. Git与Time Machine等备份系统相比如何?

  5. 这是手动过程吗,换句话说,如果您不提交,您将不会拥有所做更改的新版本?

  6. 如果没有合作,而您已经在使用备份系统,为什么要使用Git?


也许它可以帮助某人理解这些差异:pedrorijo.com/blog/git-init
pedrorijo91 2015年

Answers:


254
  1. Git和GitHub有什么区别?

    Git是一个版本控制系统;将其视为代码的一系列快照(提交)。您会看到这些快照的路径,以及它们在创建时的顺序。您可以创建分支进行实验,然后返回创建的快照。

    GitHub是一个网页,您可以在该网页上发布Git存储库并与其他人合作。

  2. Git是否将每个存储库都保存在本地(在用户计算机中)和GitHub中?

    不,这只是本地的。您可以决定在GitHub上推送(发布)一些分支。

  3. 您可以在没有GitHub的情况下使用Git吗?如果是,使用GitHub有什么好处?

    是的,如果您不使用GitHub,则Git在本地运行。使用GitHub的替代方法可以在Dropbox上托管的文件上运行Git,但是GitHub是一种更为简化的服务,因为它是专为Git而设计的。

  4. Git与Time Machine等备份系统相比如何?

    这是另一回事,Git使您可以跟踪更改和开发过程。如果将Git与GitHub一起使用,它实际上将成为备份。但是通常情况下,您不会一直将其推送到GitHub,这时如果出现问题,您将没有完整的备份。我在与Dropbox同步的文件夹中使用git。

  5. 这是手动过程吗,换句话说,如果您不提交,您将不会拥有所做更改的新版本?

    是的,提交和推送都是手动的。

  6. 如果没有合作,而您已经在使用备份系统,为什么要使用Git?

    • 如果在两次提交之间遇到错误,则可以使用该命令git diff查看当前代码与上次工作的提交之间的差异,从而帮助您查找错误。

    • 您也可以返回上一个工作提交。

    • 如果您想尝试更改,但不确定它是否会起作用。您创建一个分支来测试代码更改。如果工作正常,则将其合并到主分支。如果不是这样,则只需将分支扔掉并返回主分支即可。

    • 您做了一些调试。提交之前,您始终要查看上一次提交的更改。您会看到您忘记删除的调试打印语句。

确保您检查gitimmersion.com


5
最后一段第一节确实是一个好点。git intersect为此也要结帐。

2
@ H2CO3你的意思是git bisect
西蒙·惠特克

1
@SimonWhitaker是的,这是一个错字。

47
  1. Git和GitHub有什么区别?

    莱纳斯·托瓦尔兹(Linus Torvalds)为此会杀了你。Git是他编写的版本管理器程序的名称。GitHub是一个网站,上面有可由Git管理的源代码存储库。因此,GitHub与原始Git工具完全无关。

  2. git是否将每个存储库都保存在本地(在用户计算机中)和GitHub中?

    如果您提交更改,它将存储在本地。然后,如果您推送提交,它也会远程删除它们。

  3. 您可以在没有GitHub的情况下使用Git吗?如果是,使用GitHub有什么好处?

    可以,但是我确定您不想自己手动设置git服务器。GitHub的好处?好吧,易于使用,很多人都知道它,因此其他人可能会找到您的代码并关注/分叉它以进行改进。

  4. Git与Time Machine等备份系统相比如何?

    Git是专门为源代码设计和优化的。

  5. 这是手动过程吗,换句话说,如果您不提交,您将不会拥有所做更改的新版本?

    究竟。

  6. 如果没有合作,而您已经在使用备份系统,为什么要使用Git?

    参见#4。


5
实际上,您可以完全在本地使用git。为何要使用github的唯一原因是发布源代码。例如协作。如果您不想这样做,则不需要git服务器。
达沃德·塔哈维·内贾德

@ DavoudTaghawi-Nejad是的,但我确定OP将“没有Github”指为“不是专门针对GitHub”。我还认为,从#2很明显,您只能在本地使用git。

4
@ DavoudTaghawi-Nejad我使用github作为备份,而不是用于协作。如果发生火灾/等密码是安全的。
Thufir

github Follow and fork功能是什么?
谅解

29
  1. Git和GitHub有什么区别?

    Git是一个分布式版本控制系统。它通常在本地计算机的命令行上运行。它会在“存储库”(或“存储库”)中跟踪您的文件以及对这些文件的修改,但是只有在您告诉它这样做时才进行。(换句话说,您决定要跟踪哪些文件以及何时进行任何修改的“快照”。)

    相比之下,GitHub是一个网站,允许您在线发布Git存储库,出于多种原因,它可能很有用(请参阅#3)。

  2. Git是否将每个存储库都保存在本地(在用户计算机中)和GitHub中?

    Git被称为“分布式”(而不是“集中式”)版本控制系统,因为您可以在本地运行它并与Internet断开连接,然后随时将更改“推送”到远程系统(例如GitHub)。因此,仅当您手动告诉Git推送这些更改时,回购更改才会出现在GitHub上。

  3. 您可以在没有GitHub的情况下使用Git吗?如果是,使用GitHub有什么好处?

    是的,您可以在没有GitHub的情况下使用Git。Git是一个“主力”程序,它实际上跟踪您的更改,而GitHub只是托管您的存储库(并提供Git中不可用的其他功能)。以下是使用GitHub的一些好处:

    • 它提供了文件的备份。
    • 它为您提供了用于浏览存储库的可视界面。
    • 它使其他人可以浏览您的存储库。
    • 它使回购协作变得容易(例如,多个人参与同一项目)。
    • 它提供了一个轻量级的问题跟踪系统。
  4. Git与Time Machine等备份系统相比如何?

    Git确实会备份您的文件,尽管与传统的备份系统相比,它在备份内容和时间方面为您提供了更为精细的控制。具体来说,您每次要对更改进行快照时都“提交”,并且该提交既包含对更改的描述,又包含这些更改的逐行详细信息。这对于源代码是最佳的,因为您可以轻松地逐行查看任何给定文件的更改历史记录。

  5. 这是手动过程吗,换句话说,如果您不提交,您将不会拥有所做更改的新版本?

    是的,这是一个手动过程。

  6. 如果没有合作,而您已经在使用备份系统,为什么要使用Git?

    • Git使用功能强大的分支系统,使您可以同时处理多个独立的开发线,然后根据需要将这些分支合并在一起。
    • Git允许您查看文件的不同版本之间的逐行差异,这使故障排除更加容易。
    • Git迫使您描述每个提交,这使得跟踪给定文件的特定先前版本(并可能还原到该先前版本)变得非常容易。
    • 如果您需要代码方面的帮助,可以通过Git对其进行跟踪并托管在GitHub上,这使得其他人更容易查看您的代码。

要开始使用Git,我建议在线书Pro Git以及GitRef作为方便的参考指南。对于GitHub入门,我喜欢GitHub的Bootcamp及其GitHub指南。最后,我创建了一个简短的视频系列,向初学者介绍Git和GitHub。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.