Gitlab初探之使用与本地文件上传
- 什么是gitlab
- gitlab图形界面操作
- git的安装
- 本地文件上传
- 1.首先在git上做全局配置
- 2.创建一个新库
- 3.已存在文件上传
- 结语
什么是gitlab
GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。
GitLab和GitHub一样属于第三方基于Git开发的作品,免费且开源),与Github类似,可以注册用户,任意提交你的代码,添加SSHKey等等。不同的是,GitLab是可以部署到自己的服务器上,数据库等一切信息都掌握在自己手上,适合团队内部协作开发,你总不可能把团队内部的智慧总放在别人的服务器上吧?简单来说可把GitLab看作个人版的GitHub。
gitlab图形界面操作
注:本人使用的是只可校园网访问的gitlab,是直接访问IP站点进入的,这里就不透漏啦。
注册登陆后新建项目,开始第一次gitlab之旅。点击右上角加号选择New project,当然,我已经新建过项目,所以是这样的界面。若你是第一次登陆,会有四个提示框,照样选new proejct即可。
现在进入了项目配置页面,项目路径由系统自动生成,目前windows端host值还是localhost,我没有找到一个合适的修改方法,基本上网上的教程都是linux环境下的修改方式。你需要记住自己访问的服务器IP or domain。
需要自己操作的只有填写项目名称(project name)以及可视等级(visibility level)。 其中对于可视等级根据自己实际需求选择:
- private
必须将项目访问权限明确授予每个用户。 - internal
任何登录的用户都可以访问该项目。 - public
无需任何身份验证即可访问该项目。
如图,我创建了一个名为test的项目。继续看第二个红框,此时项目的库为空,需要使用命令进行操作使得我们的库建立起来。
这是官方给的命令介绍,我们后面详细说。
那么接下来问题来了,在window下,我们怎么使用这些命令,难道是利用windows的cmd吗?? 非也,这里就要稍微提一嘴git了,git是一个分布式的内容管理系统,是一种命令工具。我们需要利用git在本地建库然后连接远程gitlab进行同步,当然你也可以先写个readme.md或者其他文件,然后可以upload file,但是这种只允许上传10MB大小的文件。
git的安装
在git官网进行下载,具体过程不再赘述,安装过程一路默认即可~~
注:记得选对系统和需要的版本号
安装后可在桌面or文件夹下点击 右键->Git bash here,输入git --version查看是否安装成功–
可得到说明安装成功
本地文件上传
**本文使用的是HTTP的协议进行试验,有兴趣的可以用SSH,需要配置key
1.首先在git上做全局配置
2.创建一个新库
**
千万注意,这一步必须做,刚开始的时候看了很多其他讲文件上传的博客,都是直接从第三步讲起,按他们的方式直接错根本连不上服务器,小白太难了(落泪)
**
上文提到,官方给的地址为localhost,本身就在浏览器无法打开,进行clone操作以及后续连接操作时均无法正常工作,故建议使用服务器IP或者domain替代localhost后再进行。也就是:
git clone http://ip or domain/**.git
替代了第一条命令即可。
git clone 可以拷贝一个 Git 仓库到本地,让自己能够查看该项目,或者进行修改;
git add 是添加文件到暂存区;
git commit -m “ ” 是将暂存区内容添加到本地仓库中,引号内为提示语句,随便填都可以;
git push 命用于从将本地的分支版本上传到远程并合并。
做完这步你会发现你操作的文件夹下出现了一个库文件夹,我的是/test,并且readme.md也在本地生成了。同时,可以在服务器端看到生成的对应文件,相当于二者进行了同步操作。
3.已存在文件上传
1)我们可以将文件考到我们第二部生成的文件夹/test中,然后直接 add->commit->push进行操作。我这里用一个test1.txt,将其copy到/test中进行了操作。
可以看到成功了。
2)若文件迁移麻烦,就在原文件夹下操作,那么我们需要用下面这种方法
“git add . ” 中 ‘.’表示文件夹下所以文件,也就是我们将该文件夹下文件都进行上传。
git init 命用于在目录中创建新的 Git 仓库;
git remote 命用于在远程仓库的操作;
git remote add [shortname] [url] 用于添加远程版本库,shortname 为本地的版本库
譬如我需要上传这个文件夹下所有文件,就在该文件夹下右键git bahs here进行操作。
报错: failed to push some refs to git
最终同步阶段出问题了,为什么呢???
答案是库内文件不推一,我们git init初始化以后没有和远程同步,确少readme.md该文件,两端 不同步,故提交的本地文件同步失败。
如何解决?
git pull --rebase origin master
使用该命令进行同步后即可解错。
可以看到我们成功上传了文件。
结语
这个东西其实很简单,但我还是出了一些问题,耗费了不少时间才弄完。究其原因还是在于不够细心以及对git的了解不够,原先用github只是单纯的使用别人的代码,没有了解过gi他、github、gitlab这些东西的原理以及具体操作。导致一开始只是机械的跟着别人的的解法走,出了不少问题。
看了很多博客写的只是从第三步git init开始,本地都没库做映射,跟着做当然出问题,一直连接不上,不管是git clone话说git remote add ,都会报错。同时也没说和远程库做同步不然提交同步不了的问题。这让小白真滴很难办,还是吃一堑长一智吧。
做实验、做研究还是得先了解一些原理再入手,不用你研究的多深,但是基本的逻辑与基本的原理都得掌握,才能在研究过程中心中有数。
共勉~~