Git - Git教程 09:远程仓库

前言

1 - 到目前为止,已经掌握了如何在 Git 仓库里对一个文件进行增删改操作,你再也不用担心文件备份或者丢失的问题。可是有用过集中式版本控制系统 SVN 的童鞋会站出来说,这些功能在 SVN 里早就有了,没看出 Git 有什么特别的地方。没错!如果只是在一个仓库里管理文件历史,Git 和 SVN 真没啥区别。为了保证你现在所学的 Git 物超所值,开始介绍 Git 的杀手级功能之一:远程仓库

2 - Git 是分布式版本控制系统,同一个 Git 仓库,可以分布到不同的机器上。怎么分布呢?最早,肯定只有一台机器拥有一个原始版本库,此后,别的机器可以克隆这个原始版本库,而且每台机器的版本库其实都是一样的,并没有主次之分。这时,你肯定会想:至少需要两台机器才能玩远程库不是?但是我只有一台电脑,怎么玩

3 - 其实一台电脑上也是可以克隆多个版本库的,只要不在同一个目录下。不过,现实生活中是不会有人这么傻的在一台电脑上搞几个远程库玩,因为一台电脑上搞几个远程库完全没有意义,而且硬盘挂了会导致所有库都挂掉,所以我也不告诉你在一台电脑上怎么克隆多个仓库

4 - 实际情况往往是这样,找一台电脑充当服务器的角色,每天 24 小时开机,其他每个人都从这个所谓的服务器仓库克隆一份到自己的电脑上,并且各自把各自的提交推送到服务器仓库里,也从服务器仓库中拉取别人的提交

5 - 完全可以自己搭建一台运行 Git 的服务器,不过现阶段,为了学 Git 先搭个服务器绝对是小题大作。好在这个世界上有个叫 GitHub 的神奇的网站,从名字就可以看出,这个网站就是提供 Git 仓库托管服务的,所以,只要注册一个 GitHub 账号,就可以免费获得 Git 远程仓库

使用前的配置

1 - 由于你的本地 Git 仓库 和 GitHub 仓库之间的传输是通过 SSH 加密的,所以需要一些设置

① 创建 SSH Key:在用户主目录下,看看有没有 .ssh 目录。如果有,再看看这个目录下有没有 id_rsa 和 id_rsa.pub 这两个文件。如果已经有了,则可直接跳到下一步。如果没有则需要创建 SSH Key

$ ssh-keygen -t rsa -C "xxxxx@163.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/bs.ep/.ssh/id_rsa): 
Created directory '/Users/bs.ep/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /Users/bs.ep/.ssh/id_rsa.
Your public key has been saved in /Users/bs.ep/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:KFSym6IO1/EA6WZvOYVZlCd2CQki/VJOe0 xxxxx@163.com
The key's randomart image is:
+---[RSA 3072]----+
|BX*+B+o          |
|@++B+O.          |
|=+= *o           |
|oo + oE.         |
|      |
|+o o =           |
|+ . . .          |
|o.               |
| .               |
+----[SHA256]-----+

由于这个 Key 也不是用于军事目的,所以也无需设置密码,根据需要可修改你想要的路径,一路回车即可

② 如果一切顺利的话,可以在用户主目录里找到 .ssh 目录,里面有 id_rsa_PerLearn 和 id_rsa_PerLearn.pub 两个文件,这两个就是 SSH Key 的秘钥对

    id_rsa_PerLearn 是私钥,不能泄露;id_rsa_PerLearn.pub 是公钥,可以放心地告诉任何人

③ 在拥有 GitHub 帐号下,在 SSH Keys 页面中点击 New SSH Key ,填上任意 Title;在 Key 文本框里粘贴 id_rsa_PerLearn.pub 文件的内容后;最后 Add SSH Key

 

为什么 GitHub 需要 SSH Key 呢?因为 GitHub 需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而 Git 支持 SSH 协议,所以 GitHub 只要知道了你的公钥,就可以确认只有你自己才能推送

当然 GitHub 允许你添加多个 Key:假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的 Key 都添加到 GitHub ,就可以在每台电脑上往 GitHub 推送了!注:在 GitHub 上免费托管的 Git 仓库,任何人都可以看到喔,但只有你自己才能改。所以,不要把敏感信息放进去

④ 如果你不想让别人看到 Git 库,有两个办法

    一个是交点保护费,让 GitHub 把公开的仓库变成私有的,这样别人就看不见了

    另一个办法是自己动手,搭一个 Git 服务器。因为是你自己的 Git 服务器,所以别人也是看不见的。这个方法后面会讲到的,相当简单,公司内部开发必备

posted on 2017-07-17 12:27  低头捡石頭  阅读(22)  评论(0编辑  收藏  举报

导航