【Git入门之七】Git和Github

来源:互联网 发布:飓风微信裂变系统源码 编辑:程序博客网 时间:2024/04/28 07:22

原创作品,转载请标明:http://blog.csdn.net/jackystudio/article/details/12271877


上一篇介绍了如何在本机创建一个远程仓库,但是如果硬盘挂了,那重新码起吧。。。


1.github是神马?

一家公司,一个网站。主要负责基于git的版本托管服务。看看这篇文章(http://www.yangzhiping.com/tech/github.html),你就会知道github是神马。目前github上的项目都是开放的,如果想要设置私有,那交钱吧。



2.注册帐号

在开始本篇学习之前,请先注册一个github帐号,了解一下github界面的相关操作。


3.设置SSH

SSH用于加密传输数据,这里用到了基于密钥的安全验证,这种方式需要依靠密匙,也就是你必须为自己创建一对密匙,并把公用密匙放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密匙进行安全验证。服务器收到请求之后,先在该服务器上你的主目录下寻找你的公用密匙,然后把它和你发送过来的公用密匙进行比较。如果两个密匙一致,服务器就用公用密匙加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私人密匙解密再把它发送给服务器。
使用用这种方式,你必须知道自己密匙的口令。它不需要在网络上传送口令。不仅加密所有传送的数据,而且“中间人”这种攻击方式也是不可能的(因为他没有你的私人密匙)。但是整个登录的过程可能需要10秒。


3.1.创建SSH密钥

[cpp] view plaincopy
  1. #创建SSH  
  2. $ ssh-keygen -t rsa -C "YourEmail@example.com"  
确认目录和密码短语,可以直接使用默认,回车就行。


3.2.添加公有密钥到github

在刚才确认的目录下看以看到生成了.ssh目录,里面有两个文件id_rsa(私有密钥)和id_rsa.pub(公有密钥)。登录github→Account Settings→SSH keys,添加一个SSH key,标题任意,把id_rsa.pub的内容拷入即可。


3.3.确认设置

[cpp] view plaincopy
  1. #确认设置是否正确  
  2. $ ssh -T git@github.com  
  3.   
  4. #在提示仍然连接敲入yes  
  5. ...  
  6. Hi Jacky! You've successfully authenticated...  
有上面的提示就OK了,如果设置了密码短语,需要输入密码短语。

4.添加github仓库


4.1.在github上新建仓库

在github上create new repository,输入名字,其余默认即可。


4.2.两种方式添加github仓库

(1)使用git协议(以下要注意替换成你自己的地址)

[cpp] view plaincopy
  1. $ git remote add git_github git@github.com:fusijie/JackyGit.git  
(2)使用http协议

使用http协议要输入github的账号密码。

[cpp] view plaincopy
  1. $ git remote add http_github https://github.com/fusijie/JackyGit.git  

5.本地库推送到github

[cpp] view plaincopy
  1. $ git push -u git_github master  
这时候查看一下你的github主页,本地库文件是不是已经被推送上去了。


6.从github克隆到本地

[cpp] view plaincopy
  1. #返回上级目录  
  2. $ cd ..  
  3.   
  4. #新建jackygit3目录  
  5. $ mkdir jackygit3  
  6.   
  7. #进入jackygit3目录  
  8. $ cd jackygit3  
  9.   
  10. # 从github克隆到本地库  
  11. $ git clone git@github.com:fusijie/JackyGit.git  
  12. Cloning into 'JackyGit'...  
  13. remote: Counting objects: 38, done.  
  14. remote: Compressing objects: 100% (15/15), done.  
  15. remote: Total 38 (delta 9), reused 38 (delta 9)  
  16. Receiving objects: 100% (38/38), done.  
  17. Resolving deltas: 100% (9/9), done.  
  18. Checking connectivity... done