小白只要把这个新系列看完,对gitlab再也不会迷茫了。
好的,继上文我们明白要用gitlab来当做代码的远程仓库。
可是,在你的学习生涯中,一定有一段技术是一提起来就头疼的,就是gitlab如何设置ssh免密,这块我们很多人第一次学的都是按照网上的一些教程,一句一句执行,有的各种报错,失败,而且也完全不明白每句的意思,请你试着回想那些教程。结合本文的思路,就会瞬间秒懂。
让我们仍然用带着问题的方式来探索这个过程吧~
问题:gitlab作为远程仓库,到底有啥用?
答:gitlab相当于你代码的最终存储地,你代码放本地多危险,说丢就丢。而且要是好几个人共同开发这一个项目,那总该有个最终集合的地方,那个地方就是gitlab,它是一个远程仓库,我们平时在浏览器打开看到的只是它的web控制页面。最终gitlab把代码复制到你的服务器上。
过程就是:本地电脑代码 -----> gitlab ------> 你的服务器
好,那么我们面临的俩个大难题就是,如何把你本地的代码上传到gitlab,和如何从你的服务器上获取到gitlab的代码。
问题:如何把本地代码上传到gitlab,如何在服务器上获取到gitlab代码。
答:这个问题大家不要操心,其实就是来个命令,一个git push上传,一个是git pull下载。仅此而已。当然,具体使用中,git push需要一组命令[git add . / git commit -m '.' / git push]
问题 :gitlab的远程仓库要怎么创建,怎么克隆?
答:正常来说,你的开发顺序应该是,先在gitlab上创建一个空项目,然后把这个空项目克隆到本地电脑上,在把你之前的代码手动复制到这个本地电脑的空项目内,以后你就在这个本地电脑的空项目开发了。所谓克隆,其实就是命令:git clone。其实就是复制,只是首次复制,叫克隆。
问题:服务器也要克隆gitlab上的远程代码项目么?
答:这不是当然的么,服务器首次,也是需要把gitlab的代码复制到服务器上,咱们的目的就是要把代码弄到服务器上啊。而这个首次复制,也叫克隆,也是 : git clone命令。本质上与你本地和gitlab的交互没啥区别。
问题:gitlab上是随便可以进进出出的么?随便一台机器都可以直接上传代码和下载?
答:当然不是随便的,主流都是ssh来链接,通俗来说,就是具体的电脑要把自己的某个独一无二的标识,放到gitlab内特殊位置保存。这样这台电脑才有权限对gitlab内的项目进行上传,下载,包括上面的克隆。
问题:gitlab的ssh到底怎配置呢?网上的教程好繁琐呀~
答:上一个问题所说的,每太电脑的独一无二的标识,其实就是公钥,也就是隐藏在~/.ssh/id_rsa.pub的文件内容。
注意,这个文件的位置是在~ 下,~就是你当前电脑的用户名的专属路径。也就是说,每个电脑的用户都有一个自己的.ssh文件夹和内部的公钥私钥等文件。而你想把这个一大堆字符串粘贴到gitlab上保存,前提是gitlab也是要你的账号登录后才能设置保存成功。除了你本人,谁也配置不了这个,所以很安全。
问题:id_rsa.pub文件没有怎么办?
答:很多教程要么是直接让你新建,要么是直接用。其实,这个文件本来是没有的,需要你手动去通过一些命令去创建,基本是如下命令:
ssh -keygen -t rsa -C 你的gitlab邮箱
然后按照提示,一路回车或者按y就可以成功。成功后就自动生成了那个.ssh文件夹和id_rsa.pub文件。注意这个.ssh文件夹开头是个点,这意思是文件夹是默认隐藏的,你可以直接cd 来进入,也可以通过ls -a来看到它。
问题:id_rsa.pub的内容复制到哪?
用你的账号打开gitlab,然后点击右上角个人头像,有个设置edit字样的。进入设置后,左边菜单有个ssh字样的,点进去把id_rsa.pub的内容复制到这个多行文本框里,然后点下面的Add按钮。很多网上的教程和截图都是旧的,因为gitlab也是总在更新的。大家要理解这个原理,之后这怎么变都不怕:
经过上述操作后,你的电脑就可以直接对这个gitlab内的项目进行克隆/上传/下载等操作了。