git与github关系
git是弓,你的代码是箭,github是靶子。
git是软件,它可在本地建立仓库,你写的代码的各个版本都可以存着
github是网上仓库,你写的代码的各个版本都可以存着。
git
版本控制(Version control):顾名思义,版本控制系统是任何能让你了解到一个文件的历史,以及它的发展过程的系统。
Git 是用于 Linux内核开发的版本控制工具。与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持(wingeddevil注:这得分是用什么样的服务端,使用http协议或者git协议等不太一样。并且在push和pull的时候和服务器端还是有交互的。),使源代码的发布和交流极其方便。 Git 的速度很快,这对于诸如 Linux kernel 这样的大项目来说自然很重要。 Git 最为出色的是它的合并跟踪(merge tracing)能力。
实际上内核开发团队决定开始开发和使用 Git 来作为内核开发的版本控制系统的时候,世界开源社群的反对声音不少,最大的理由是 Git 太艰涩难懂,从 Git 的内部工作机制来说,的确是这样。但是随着开发的深入,Git 的正常使用都由一些友好的脚本命令来执行,使 Git 变得非常好用,即使是用来管理我们自己的开发项目,Git 都是一个友好,有力的工具。现在,越来越多的著名项目采用 Git 来管理项目开发.
因此,git允许你通过提交对一个系统(或一组)文件的历史进行注释。这些提交便是在给定时间点对系统做出的差异“快照”。你就能知道你何时对项目做了什么修改。
Github
gitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名gitHub。
作为开源代码库以及版本控制系统,Github拥有超过900万开发者用户。随着越来越多的应用程序转移到了云上,Github已经成为了管理软件开发以及发现已有代码的首选方法。
如前所述,作为一个分布式的版本控制系统,在Git中并不存在主库这样的概念,每一份复制出的库都可以独立使用,任何两个库之间的不一致之处都可以进行合并。
GitHub可以托管各种git库,并提供一个web界面,但它与外国的SourceForge、Google Code或中国的coding的服务不同,GitHub的独特卖点在于从另外一个项目进行分支的简易性。为一个项目贡献代码非常简单:首先点击项目站点的“fork”的按钮,然后将代码检出并将修改加入到刚才分出的代码库中,最后通过内建的“pull request”机制向项目负责人申请代码合并。已经有人将GitHub称为代码玩家的MySpace。
在GitHub进行分支就像在Myspace(或Facebook)进行交友一样,在社会关系图的节点中不断的连线。
GitHub项目本身自然而然的也在GitHub上进行托管,只不过在一个私有的,公共视图不可见的库中。开源项目可以免费托管,但私有库则并不如此。Chris Wanstrath,GitHub的开发者之一,肯定了通过付费的私有库来在财务上支持免费库的托管这一计划。
通过与客户的接洽,开发FamSpam,甚至是开发GitHub本身,GitHub的私有库已经被证明了物有所值。任何希望节省时间并希望和团队其它成员一样远离页面频繁转换之苦的人士都会从GitHub中获得他们真正想要的价值。
在GitHub,用户可以十分轻易地找到海量的开源代码。
git安装(mac)
不知道为啥已经装好了
SSH key提供了一种与GitHub通信的方式,通过这种方式,能够在不输入密码的情况下,将GitHub作为自己的remote端服务器
创建GitHub账号并确认
在终端中输入以下代码:
//chujiahuideMacBook-Air:~ chujiahui$ ssh-keygen -t rsa -C "1269710313@qq.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/chujiahui/.ssh/id_rsa): /Users/chujiahui/.ssh/id_rsa_igit
Created directory ‘/Users/chujiahui/.ssh‘.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/chujiahui/.ssh/id_rsa_igit.
Your public key has been saved in /Users/chujiahui/.ssh/id_rsa_igit.pub.
The key fingerprint is:
SHA256:xZaXoSEmK/hhRdCGZtHji93Oqg9HmJHSZJsT80CgiI0 1269710313@qq.com
The key‘s randomart image is:
+---[RSA 3072]----+
| .oXB+ o . . |
|o+ =+X=+ o + o |
|E +o@oo. * o |
| + B. o . |
| +o.oS |
| ..o . |
| . .o |
| o o |
| .oo. |
+----[SHA256]-----+
将新生成的key添加到ssh-agent中:
将ssh key添加到github中
与自己项目的结合
可以通过git分支,给每个人分配好任务,最后在进行汇总,进行统计。同时git也能够记录我们的历史修改,当我们出现了重大错误是可以进行历史回溯,大大加大了开发的效率。
github就更不用说了,可以找到大量优质的资源,有很多值得借鉴的源码,大大加快开发的进行。
原文:https://www.cnblogs.com/wangga/p/14811257.html