一、本次聊聊git和其他管理工具的区别–区别之一:远程仓库
Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上。怎么分布呢?最早,肯定只有一台机器有一个原始版本库,此后,别的机器可以“克隆”这个原始版本库,而且每台机器的版本库其实都是一样的,并没有主次之分。
你肯定会想,至少需要两台机器才能玩远程库不是?但是我只有一台电脑,怎么玩?
其实一台电脑上也是可以克隆多个版本库的,只要不在同一个目录下。不过,现实生活中是不会有人这么傻的在一台电脑上搞几个远程库玩,因为一台电脑上搞几个远程库完全没有意义,而且硬盘挂了会导致所有库都挂掉,所以我也不告诉你在一台电脑上怎么克隆多个仓库。
实际情况往往是这样,找一台电脑充当服务器的角色,每天24小时开机,其他每个人都从这个“服务器”仓库克隆一份到自己的电脑上,并且各自把各自的提交推送到服务器仓库里,也从服务器仓库中拉取别人的提交。
完全可以自己搭建一台运行Git的服务器,不过现阶段,为了学Git先搭个服务器绝对是小题大作。好在这个世界上有个叫GitHub的神奇的网站,从名字就可以看出,这个网站就是提供Git仓库托管服务的,所以,只要注册一个GitHub账号,就可以免费获得Git远程仓库。
二、如何实现本地仓库和远程仓库的连接
- 1)配置用户信息
配置内容:user.name 和 user.email
配置目的:记录历史,谁做了什么事。每次 Git 提交时都会引用这两条信息,说明是谁提交了更新,随更新内容一起被永久纳入历史记录
**配置方法:**windows下打开Git Bash进行操作
git config #查看本机是否配置了个人信息
git config --global user.name "……"#定义全局的用户名
git config --global user.email "……"#定义全局的邮件地址
- 2)创建SSH Key
配置目的:当你想传文件到远程仓库的时候,必须通过一个公钥实现本机和远程服务器的认证,如果没有做认证,gitlab服务器上会明显提示你:You won't be able to pull or push project code via SSH until you add an SSH key to your profile
创建方法:
首先在用户主目录下(本机:C:\Users\renawu)有没有.ssh
文件,如果有再确认一下.ssh
目录下有没有id_rsa
和id_rsa.pub
文件,如果没有,按一下步骤生成
ssh -keygen -t rsa -C "user.email"
图中需要输入内容的地方一路回车就好,因为我们的key不是用于军事目的,无需密码设置。最后在你的主目录中能看到这两个文件。注意id_rsa
是私钥不要轻易告诉别人,id_rsa.pub
是公钥可放心告诉任何人
- 3)添加公钥到gitlab服务器
原因:
为什么GitHub需要SSH Key呢?因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。
当然,GitHub允许你添加多个Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送了
小结
到这里我们就为push资料到远程仓库做好了充分的准备,有了远程仓库实现了资源的共享,也不用担心本地硬盘