Gitlab初探之使用与本地文件上传

  • 什么是gitlab
  • gitlab图形界面操作
  • git的安装
  • 本地文件上传
  • 1.首先在git上做全局配置
  • 2.创建一个新库
  • 3.已存在文件上传
  • 结语


什么是gitlab

GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。

GitLab和GitHub一样属于第三方基于Git开发的作品,免费且开源),与Github类似,可以注册用户,任意提交你的代码,添加SSHKey等等。不同的是,GitLab是可以部署到自己的服务器上,数据库等一切信息都掌握在自己手上,适合团队内部协作开发,你总不可能把团队内部的智慧总放在别人的服务器上吧?简单来说可把GitLab看作个人版的GitHub。

gitlab图形界面操作

注:本人使用的是只可校园网访问的gitlab,是直接访问IP站点进入的,这里就不透漏啦。

gitlab markdown图片上传失败 gitlab网页上传文件_gitlab


注册登陆后新建项目,开始第一次gitlab之旅。点击右上角加号选择New project,当然,我已经新建过项目,所以是这样的界面。若你是第一次登陆,会有四个提示框,照样选new proejct即可。

gitlab markdown图片上传失败 gitlab网页上传文件_gitlab_02


现在进入了项目配置页面,项目路径由系统自动生成,目前windows端host值还是localhost,我没有找到一个合适的修改方法,基本上网上的教程都是linux环境下的修改方式。你需要记住自己访问的服务器IP or domain。

需要自己操作的只有填写项目名称(project name)以及可视等级(visibility level)。 其中对于可视等级根据自己实际需求选择:

  1. private
    必须将项目访问权限明确授予每个用户。
  2. internal
    任何登录的用户都可以访问该项目。
  3. public
    无需任何身份验证即可访问该项目。

gitlab markdown图片上传失败 gitlab网页上传文件_服务器_03


如图,我创建了一个名为test的项目。继续看第二个红框,此时项目的库为空,需要使用命令进行操作使得我们的库建立起来。

gitlab markdown图片上传失败 gitlab网页上传文件_gitlab_04

这是官方给的命令介绍,我们后面详细说。

那么接下来问题来了,在window下,我们怎么使用这些命令,难道是利用windows的cmd吗?? 非也,这里就要稍微提一嘴git了,git是一个分布式的内容管理系统,是一种命令工具。我们需要利用git在本地建库然后连接远程gitlab进行同步,当然你也可以先写个readme.md或者其他文件,然后可以upload file,但是这种只允许上传10MB大小的文件。

git的安装

git官网进行下载,具体过程不再赘述,安装过程一路默认即可~~
注:记得选对系统和需要的版本号

安装后可在桌面or文件夹下点击 右键->Git bash here,输入git --version查看是否安装成功–

gitlab markdown图片上传失败 gitlab网页上传文件_服务器_05


可得到说明安装成功

本地文件上传

**本文使用的是HTTP的协议进行试验,有兴趣的可以用SSH,需要配置key

1.首先在git上做全局配置

gitlab markdown图片上传失败 gitlab网页上传文件_上传_06


gitlab markdown图片上传失败 gitlab网页上传文件_gitlab_07

2.创建一个新库

**

千万注意,这一步必须做,刚开始的时候看了很多其他讲文件上传的博客,都是直接从第三步讲起,按他们的方式直接错根本连不上服务器,小白太难了(落泪)

**

gitlab markdown图片上传失败 gitlab网页上传文件_上传_08


上文提到,官方给的地址为localhost,本身就在浏览器无法打开,进行clone操作以及后续连接操作时均无法正常工作,故建议使用服务器IP或者domain替代localhost后再进行。也就是:

git clone http://ip or domain/**.git

替代了第一条命令即可。

gitlab markdown图片上传失败 gitlab网页上传文件_服务器_09


git clone 可以拷贝一个 Git 仓库到本地,让自己能够查看该项目,或者进行修改;

git add 是添加文件到暂存区;

git commit -m “ ” 是将暂存区内容添加到本地仓库中,引号内为提示语句,随便填都可以;

git push 命用于从将本地的分支版本上传到远程并合并。

gitlab markdown图片上传失败 gitlab网页上传文件_git_10


做完这步你会发现你操作的文件夹下出现了一个库文件夹,我的是/test,并且readme.md也在本地生成了。同时,可以在服务器端看到生成的对应文件,相当于二者进行了同步操作。

gitlab markdown图片上传失败 gitlab网页上传文件_上传_11

3.已存在文件上传

1)我们可以将文件考到我们第二部生成的文件夹/test中,然后直接 add->commit->push进行操作。我这里用一个test1.txt,将其copy到/test中进行了操作。

gitlab markdown图片上传失败 gitlab网页上传文件_服务器_12


gitlab markdown图片上传失败 gitlab网页上传文件_gitlab_13


可以看到成功了。

2)若文件迁移麻烦,就在原文件夹下操作,那么我们需要用下面这种方法

gitlab markdown图片上传失败 gitlab网页上传文件_git_14


“git add . ” 中 ‘.’表示文件夹下所以文件,也就是我们将该文件夹下文件都进行上传。

git init 命用于在目录中创建新的 Git 仓库;
git remote 命用于在远程仓库的操作;
git remote add [shortname] [url] 用于添加远程版本库,shortname 为本地的版本库

gitlab markdown图片上传失败 gitlab网页上传文件_上传_15


譬如我需要上传这个文件夹下所有文件,就在该文件夹下右键git bahs here进行操作。

gitlab markdown图片上传失败 gitlab网页上传文件_服务器_16

报错: failed to push some refs to git

最终同步阶段出问题了,为什么呢???

答案是库内文件不推一,我们git init初始化以后没有和远程同步,确少readme.md该文件,两端 不同步,故提交的本地文件同步失败。

如何解决?

git pull --rebase origin master使用该命令进行同步后即可解错。

gitlab markdown图片上传失败 gitlab网页上传文件_git_17


gitlab markdown图片上传失败 gitlab网页上传文件_服务器_18


可以看到我们成功上传了文件。

结语

这个东西其实很简单,但我还是出了一些问题,耗费了不少时间才弄完。究其原因还是在于不够细心以及对git的了解不够,原先用github只是单纯的使用别人的代码,没有了解过gi他、github、gitlab这些东西的原理以及具体操作。导致一开始只是机械的跟着别人的的解法走,出了不少问题。

看了很多博客写的只是从第三步git init开始,本地都没库做映射,跟着做当然出问题,一直连接不上,不管是git clone话说git remote add ,都会报错。同时也没说和远程库做同步不然提交同步不了的问题。这让小白真滴很难办,还是吃一堑长一智吧。

做实验、做研究还是得先了解一些原理再入手,不用你研究的多深,但是基本的逻辑与基本的原理都得掌握,才能在研究过程中心中有数。

共勉~~