git整理(三)
到目前为止,我们所有的操作都是在本地仓库中管理版本,这在svn中也可以使用,前面也说过git,需要有一台只作用于交换的伪中央仓库,但是你只有一个电脑的时候怎么办,建两个版本库?当然可以,其实一台电脑上也是可以克隆多个版本库的,只要不在同一个目录下。不过,现实生活中是不会有人这么傻的在一台电脑上搞几个远程库玩,因为一台电脑上搞几个远程库完全没有意义,而且硬盘挂了会导致所有库都挂掉,所以我也不告诉你在一台电脑上怎么克隆多个仓库。
实际情况往往是这样,找一台电脑充当服务器的角色,每天24小时开机,其他每个人都从这个“服务器”仓库克隆一份到自己的电脑上,并且各自把各自的提交推送到服务器仓库里,也从服务器仓库中拉取别人的提交。
完全可以自己搭建一台运行Git的服务器,不过现阶段,为了学Git先搭个服务器绝对是小题大作。好在这个世界上有个叫GitHub的神奇的网站,从名字就可以看出,这个网站就是提供Git仓库托管服务的,所以,只要注册一个GitHub账号,就可以免费获得Git远程仓库。
还有一个可以搭建远程仓库的叫“码云”,当然此码云非彼马云,两者操作都差不多。
首先肯定是注册账号。
公钥和私钥
私钥:一把私有的钥匙,仅有用户才拥有。
公钥:一把公开的钥匙,可公开发行配送,只要有要求即取得。
每支钥匙产生一个被使用来改变属性的功能。私有的钥匙产生一个私有改变属性的功能,而公开的钥匙 产生一个 公开改变属性的功能。这些功能是反向相关的,例如,如果一个功能是用来加密消息,另外一个功能则被用来解密消息。不论此改变属性功能的次序为何皆不重要。公开的钥匙系统的优势是两个用户能够安全的沟通而不需交换秘密钥匙。例如,假设一个送信者需要传送一个信息给一个收信者,而信息的秘密性是必要的, 送信者以收信者的公开的钥匙来加密,而仅有收信者的私有的钥匙能够对此信息解密。公开的钥匙密码学是非常适合于提供认证,完整和不能否认的服务, 所有的这些服务即是我们所知的数字签名。
公钥私钥的原则:
1:一个公钥对应一个私钥。
2:密钥对中,让大家都知道的是公钥,不告诉大家,只有自己知道的,是私钥。
3:如果用其中一个密钥加密数据,则只有对应的那个密钥才可以解密。
4:如果用其中一个密钥可以进行解密数据,则该数据必然是对应的那个密钥进行的加密。
由于你的本地Git仓库和码云仓库之间的传输是通过SSH加密的,所以,需要一点设置:
创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:
$ ssh-keygen -t rsa -C "你的邮箱地址"
下面的回车就行
为什么GitHub需要SSH Key呢?因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。
码云远程仓库
登陆注册后,上面的操作界面都是可视化界面,很简单。
创建一个远程仓库
把前面的公钥添加至远程仓库(公钥暴漏出去不用担心,公钥和私钥都是成对的,私钥一定要保存好。)
从远程仓库关联本地仓库有两种协议办法HTTPS和SSH
HTTPS
在本地的项目里右键git bash here
$ git clone git@gitee.com:z7z8l78z/test.git
就会把项目克隆下来
克隆的同时该项目就会把该项目建立一个本地仓库,同时直接连接到远程仓库
如果不相信有没有连接远程仓库可以使用下面的命令
$ git remote -v
如果出现url看是否对应,一般情况下都是对应的
此时对项目进行操作,就可以提交至远程仓库
提交过程
add到缓存区 $ git add a.txt
commit到本地仓库 $ git commit -m "commit1"
push到远程仓库 $ git push -u origin master
直接从本地仓库关联远程仓库
# 关联远程仓库
$ git remote add origin 远程仓库的url
如果不小心关联错了咋办,不慌
# 先删除关联
git remote rm origin
# 再关联新的地址
git remote add origin 远程仓库的url