• This repository has been archived on 22/Aug/2022
  • Stars
    star
    137
  • Rank 257,952 (Top 6 %)
  • Language
  • License
    MIT License
  • Created almost 6 years ago
  • Updated over 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Get started with Gitlab in practicable time

A Short Gitlab Tutorial

First of all, I don't want to start a war between Github and Gitlab here. I do neither care about the ethics of using Github nor the news that Microsoft bought Github recently. I wrote this guide for one obvious reason: I want to migrate to Gitlab and help people in the same situation because thing seems a little bit different over there.

Secondly, I am not affiliated with Gitlab.

Thirdly, I am utterly targeting open source contributors and those of you who are too lazy to sign up for a Gitlab account to try it out.

It's gonna be concise (and maybe informal sometimes) so that you can kick off as soon as possible. In this guide, I am gonna assume that you are a basic Github user familiar with terms like Repo, Star, Pull Request, ... but not familiar with Github Enterprise or other "advanced" features of Github.

If you consider yourself highly mature in either of these platforms, this may not expose you to any new facts.(although I would really appreciate your reading and reviewing it)

Enough introduction, let's go!

Setting up Gitlab

This is the screen after you have singed up and logged in succesfully.

This dashboard is not similar to Github in UI, but the functionalities are pretty similar. Look at the top bar, you got Groups, Activity, Milestones, ... These are explainable on their own so I won't go deeper here.

Some differences that should be noticed are:

  • Pull request => Merge request and displayed with this icon.
  • Organisations => Group as shown in
  • Gist => Snippets

Create your first new project

While there are not many options for creating new projects (=repositories) on Github, Gitlab has a bunch of options to choose from, notably:

Blank project

You get three levels of visibility. Aside from the regularly seen private and public, they offer internal, of which openness is limited to logged in user only.

Create from a template

Gitlab offers Ruby on Rails, Spring and NodeJS Express templates to start with.

Import project from other services.

This is too easy an option. Gitlab already provided a guide for it.

CI/CD for external repo

If you plan to use Gitlab as a CI/CD provider (like Jarvis, Circle CI), go for this and provide them a Github Token. There's also a guide for this.


Above image shows a quick walkthrough

Your first project page

After set up with blank project, this is what you get:

There are some important points to notice on this screen:

  1. SSH key - You have to set up one before you can push to Gitlab for security reasons. (Gitlab uses SSH while Github uses HTTPs by default). It's easy and both Github and Gitlab provides a guide to do it.
  2. CI/CD and Operations - Gitlab has these built in by default. Skip the following part if you don't care or never used CI/CD while in Github.
  • If you are using one CI/CD system on Github (like Travis, CircleCI, .etc) this is pretty much the same. Builds are defined in a .yml file and Gitlab has a specific guide on this.
  • Operations are for you to integrate your app with Kubernetes (via Google Cloud Platform) so that deployments can be done automatically and environmentally-wise. Gitlab also got a guide for this.
  • AFAIK, Gitlab doesn't receive support from Travis/CircleCI on their platform. Some other CI services like Atlassian Bamboo or DroneCI works.
  1. Registry - Again, I am not sure if you ever worked with containers, but if you know what DockerHub or Amazon ECR are, this one is the Gitlab version of them.

Everything else is similar to what Github offers.

Advance

Yeah I do hide a lot of the powers that Gitlab gives us. If you feel curious, head to the setting part, here's a simple list of things that you can tweak on Gitlab but not on Github:

  • Visibility of literally everything, from issues to merge requests...
  • Project avatar ( อกยฐ อœส– อกยฐ)
  • Activate Service Desk (yeah it's help desk for your project...)
  • Export everything.
  • Choose integrations with a bunch of other services like Slack, Pivotal Tracker, Asana...
  • ....

Explore other projects and Contribute

I bet you will feel overwhelmed when seeing other projects's page for the first time.

This is a perfect example for a project hosted on Gitlab: Gitlab itself. From the screenshot, you can criticise them for polluting your mind with buttons, titles, buttons. It would be a total difference if you look at this https://github.com/gitlabhq/gitlabhq then come back to Gitlab's page.
But I believe it's not too hard to get familiar with. If you spend 15 seconds on this page, you will get the idea of what's going on. I just want to list out things that you might not see in that 15 seconds:

  • Issues and Merge Requests are moved to the sidebar
  • To create a pull request or issue you click the + button on the left side of the global button, which is equivalent to watch on Github (but with more options).
  • Commits are inside the history button.
  • The equivalent of Github's Insight is inside Repository. For example:
  • The equivalent of Github's Project is inside Issues. For example:
  • To view the project's programming language, you head into Repository > Charts, which is one more click away than on Github.

Everything else works just like Github or with some supplements (for example: subscribe to issues via RSS).

The contribution flow is also the same : Fork > Edit > New Merge Request

Summary

By now, you must have been aware of how things work the Gitlab way and what Gitlab has to offer. I really hope that this will ease your way to Gitlab without hiding too much Gitlab's power. Gitlab itself has cool things to be discovered, not just a mirror for other services like Github. :)

More Repositories

1

Awesome-Linux-Software

๐Ÿง A list of awesome Linux softwares
Python
19,735
star
2

Begin-Latex-in-minutes

๐Ÿ“œ Brief Intro to LaTeX for beginners that helps you use LaTeX with ease.
3,230
star
3

Markdown-Tutorial

A comprehensive guide to Markdown / Introduction to Markdown
482
star
4

CS193A

Standford CS193A Android-App-Development material.
HTML
111
star
5

Binary-Bomb

Binary Bomb / Bomb Lab/ Assembly Bomb/ Dr Evil's Binary Bomb
C
65
star
6

Minitask

Simple and lightweight todo list/task list for Android. Notice: This app is no longer maintained here. Please visit https://github.com/redlor/Minitask for further development.
Java
30
star
7

Simple-CRUD-Flask-App

Simple CRUD Flask App
Python
29
star
8

Explore-Cpp-STL

โšก A exploratory introduction to C++ Standard Template Library โšก <Work In Progress>
15
star
9

Attack-Lab

CMU's attack lab
Assembly
11
star
10

Overkill

An one in all app for all traffic problems
Java
10
star
11

Google-Map-Direction-Demo

Google Map Direction Demo on Android
Java
9
star
12

neovim-dotfiles

luong komorebi neovim lua configurations
Lua
5
star
13

SimpleLibrary

Simple library management system with Node Mongo Express
JavaScript
5
star
14

Simple-Picture-Matching-Game

Simple Picture Matching Game that runs on Android
Java
4
star
15

Phone-and-Email-Extractor

Python
4
star
16

Ruby-Sorting-Algorithm

Sorting comparision in Ruby (bubble, merge, radix, quick, selection, insertion + sort)
Ruby
4
star
17

Android-Contact-Example

I just made an Android Contact App.
Java
3
star
18

Calculator-App

Baisc android calculator app
Java
3
star
19

CS163

CS163: Data Structures and Algorithms
C++
3
star
20

Learnyounode-Solutions

Solutions to all exercises in Learnyounode
JavaScript
3
star
21

opa-grafana-dashboard

Grafana JSON model for Open Policy Agent
3
star
22

Stream-Adventure-Solutions

All solutions to Stream-adventure @nodeschool.io
JavaScript
3
star
23

JSP-Demo

Showcase of many basic functions of JSP with Java 8 and Tomcat 8.0.x
Java
2
star
24

React-Redux-Demo-1

This repo follows the React Redux udemy course. All credits go to the original author.
JavaScript
2
star
25

C-plus-plus-Data-Structure

All data structure writen in C++
C++
2
star
26

Displaying-Bitmap-in-Console

C++
2
star
27

Fimple

Simple todoapp made with Flask
HTML
2
star
28

CS201

CS201: Computer Systems Programming. Pretty similar to CMU's http://csapp.cs.cmu.edu/
2
star
29

action-mailer-kafka

Send emails from Action Mailer to Kafka message queue
Ruby
2
star
30

learnyoumongo-solutions

Solutions to all exercises in Learnyoumongo
JavaScript
2
star
31

katacoda-scenarios

Katacoda Scenarios
1
star
32

Operations-on-128-Bits-Integer

A simple source code for some ( bitwise and arithmetic ) operations on big Integers ( 128-bits )
C++
1
star
33

Oauth-Demo-with-Flask

Python
1
star
34

mkodocx-clamav-helm

Helm chart for Clamav compatible with mkodockx/docker-clamav image
Mustache
1
star
35

simpleCparser

Java
1
star
36

EasyNote

Group project for CS300 - Software development
Java
1
star
37

First-Flask-App

Python
1
star
38

CS202-Lab

Lab Assignments for CS202
C++
1
star
39

CS162

CS162 : Intro to computer science
C++
1
star
40

Servlet-Demo

Simple Java 8 Servlet Demo with Tomcat 8.0.x
Java
1
star
41

NumberGuesserGame

Simple number guesser game built with sinatra
Ruby
1
star
42

CS161

Introduction to Programming and Problem Solving
C++
1
star
43

dog-breed-scraper

A small script to scrape basic data from a table of dog breeds @ wikipedia
JavaScript
1
star
44

CS202

CS202 Programming system.
C++
1
star
45

Android-Contact-Example-2

I just made an Android Contact app.
Java
1
star
46

CityWeatherForecast

Weekend project for city weather forecast.
JavaScript
1
star
47

TIAB-website

Source code for Think in A Box's website.
HTML
1
star
48

intro-to-ruby-threads

Ruby
1
star
49

reproduce-kong-bug

Ruby
1
star