2012-08-05 114 views
189

我不完全理解使用Git或Github的目的;我知道这有助于跟踪您的更改,这对与其他人合作的人员很有帮助,但我不与任何人合作,因此我不知道这对我是否有所帮助。了解Git和GitHub的基础知识

我通常是作为网页设计师/开发人员工作,但我从不需要协作。我知道你有创建,推,承诺,创造每一个存储库,但树枝等的Git ...

  1. 是什么Git和GitHub上的区别?

  2. 是否git在本地(在用户的机器中)和GitHub中保存每个存储库?

  3. 你可以使用没有GitHub的Git吗?如果是的话,使用GitHub有什么好处?

  4. Git如何与Time Machine等备份系统进行比较?

  5. 这是一个手动过程,换句话说,如果您不承诺,您将不会有新版本的更改?

  6. 如果不合作,并且您已经在使用备份系统,那么您为什么要使用Git?

+0

也许它可以帮助别人理解差异:http://pedrorijo.com/blog/git-init – pedrorijo91 2017-06-27 14:27:06

回答

236
  1. 是什么Git和GitHub上的区别?

    Git是一个版本控制系统;将其视为您的代码的一系列snapshots(提交)。您会看到这些快照的路径,它们按照何种顺序创建。您可以让分支进行实验并回到您拍摄的快照。

    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'。 – 2012-08-09 07:29:09

+1

@ H2CO3你的意思是'git bisect'? – 2012-12-23 12:17:28

+0

@SimonWhitaker是的,这是一个错字。 – 2012-12-23 12:21:00

42
  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是发布你的源代码。例如对于协作。如果你不想这样做,你不需要一个混帐服务器。 – 2012-08-05 21:12:46

+0

@ DavoudTaghawi-Nejad是的,但我确定OP是指'没有Github'作为'不专门用于GitHub'。我也相信从#2中可以明显看出,只能在本地使用git。 – 2012-08-05 21:14:39

+4

@ DavoudTaghawi-Nejad我使用github作为备份,而不是用于协作。如果有火灾/ etc代码是安全的。 – Thufir 2012-08-09 06:02:03

28
  1. 是什么Git和GitHub上的区别?

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

    相比之下,GitHub是一个网站,允许您在线发布您的Git存储库,这对于很多原因(见#3)。

  2. 是Git的本地保存每一个存储库(在用户的机器),并在GitHub上?

    Git是被称为"distributed" (rather than "centralized") version control system,因为你可以从网上本地和离线运行它,然后“推”,只要你喜欢更改到远程系统(如GitHub上)。因此,回购的变化只出现在GitHub上,当你手动让Git来推动这些变化。

  3. 你可以使用没有GitHub的Git吗?如果是的话,使用GitHub有什么好处?

    是,还可以使用Git没有GitHub上。 Git是实际跟踪你的修改的“主力”程序,而GitHub只是托管你的仓库(并提供Git中没有的其他功能)。这里有一些使用GitHub的好处:

    • 它提供了文件的备份。
    • 它为您提供了一个导航您的回购的可视化界面。
    • 它给其他人的方式来浏览你的回购协议。
    • 这使得回购协作变得容易(例如,多人有助于同一项目)。
    • 它提供了一个轻量级的问题跟踪系统。
  4. Git如何比较Time Machine等备份系统?

    的Git做备份你的文件,但它可以让你备份你什么时候更精细的控制比传统的备份系统。具体而言,每次您想要对更改进行快照时,都会“提交”,并且该提交包含更改的说明以及这些更改的逐行详细信息。这对于源代码是最佳的,因为您可以轻松地逐行查看任何给定文件的更改历史记录。

  5. 这是一个手动过程,换句话说,如果你没有提交你将不会有新版本的更改?

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

  6. 如果不合作,并且您已经在使用备份系统,那么您为什么要使用Git?

    • 的Git采用强大的branching system,让您在发展的多个独立的线同时工作,然后根据需要这些分支合并到一起。
    • Git允许您查看不同版本的文件之间的逐行差异,这使得故障排除更容易。
    • Git强制你描述你的每一个提交,这使得跟踪给定文件的特定先前版本(并且可能恢复到先前版本)变得更加容易。
    • 如果您需要关于代码的帮助,可以通过Git进行跟踪并托管在GitHub上,这样其他人就可以更轻松地查看您的代码。

入门使用Git,我推荐的在线图书Pro Git以及GitRef作为方便的参考指南。为了开始使用GitHub,我喜欢GitHub's Bootcamp和他们的GitHub Guides。最后,我创建了一个简短的videos series向初学者介绍Git和GitHub。