gitlab training with git and sourcetree
TRANSCRIPT
Gitlab Training
Teerapat Khunpech
VCS Technology
True Information Technology
1
Gitlab : New Project
2
Gitlab : New Project (cont.)
3
Gitlab : New Project (cont.)
4
TIPS
Use SSH Key
5
SSH keys
SSH keys are a way to identify trusted
computers, without involving passwords. The
steps below will walk you through generating an
SSH key and adding the public key to your Gitlab
account.
6http://docstore.mik.ua/orelly/networking_2ndEd/ssh/figs/ssh_0202.gif
SSH-Keygen
$ ssh-keygen –t rsa –C “[email protected]”Generate public/private rsa key pair.
Enter file in which to save the key
/home/teerapat_khu/.ssh/id_rsa: [Press enter]
Enter passphrase (empty no passphrase): [Type a passphrase]
Enter same passphrase again: [Type passphrase again]
Your identification has been saved in /home/teerapat_khu/.ssh/ida_rsa.
Your public key has been saved in /home/teerapat_khu/.ssh/ida_rsa.pub.
The key fingerprint is:
bd:10:cf:76:23:4c:c7:34:83:26:ba:f4:c3:31:c1:00 [email protected]
7
SSH-Keygen
$ ssh-keygen –t rsa –C “[email protected]”Generate public/private rsa key pair.
Enter file in which to save the key
/home/teerapat_khu/.ssh/id_rsa: [Press enter]
Enter passphrase (empty no passphrase): [Type a passphrase]
Enter same passphrase again: [Type passphrase again]
Your identification has been saved in /home/teerapat_khu/.ssh/ida_rsa.
Your public key has been saved in /home/teerapat_khu/.ssh/ida_rsa.pub.
The key fingerprint is:
bd:10:cf:76:23:4c:c7:34:83:26:ba:f4:c3:31:c1:00 [email protected]
$ cat /home/teerapat_khu/.ssh/ida_rsa.pubssh-rsa
AAAAB3NzaC1yc2EAAAADAQABAAABAQDJjw9w7vbV3bQZ9kWBCBTVK2vYIMX+k6Zo6hf/MDVE2dttCdQJ87+dDdO
jRfudizsjge0nLb/pFfWtyTbZu9NGLPo/PRYD9PAPOoU6Bp9fhOCjV4ShZQQcEnZ+iIsmGAoCR08JAW/kVsu55U
8EHxuCv7Tq0L3LhUPqfbmbCO2bZP11d5kAREd4kJxA7o5SO5e2VtDJurf5COjmGXRl31AuafeXLZdtWzdSOuy5/
Lw5k+X2LnKohZYupzZ3I7O+K1x2MOuXMXgg/ZdOyyrkaMGC78s6EFhVGoTfZUU/lH8TE6v2BL0RSqbD4Ty5YZ81
+ZMezUvuyTlY7OdA6Jda/hPd [email protected]
8
SSH-Keygen
$ ssh-keygen –t rsa –C “[email protected]”Generate public/private rsa key pair.
Enter file in which to save the key
/home/teerapat_khu/.ssh/id_rsa: [Press enter]
Enter passphrase (empty no passphrase): [Type a passphrase]
Enter same passphrase again: [Type passphrase again]
Your identification has been saved in /home/teerapat_khu/.ssh/ida_rsa.
Your public key has been saved in /home/teerapat_khu/.ssh/ida_rsa.pub.
The key fingerprint is:
bd:10:cf:76:23:4c:c7:34:83:26:ba:f4:c3:31:c1:00 [email protected]
$ cat /home/teerapat_khu/.ssh/ida_rsa.pubssh-rsa
AAAAB3NzaC1yc2EAAAADAQABAAABAQDJjw9w7vbV3bQZ9kWBCBTVK2vYIMX+k6Zo6hf/MDVE2dttCdQJ87+dDdO
jRfudizsjge0nLb/pFfWtyTbZu9NGLPo/PRYD9PAPOoU6Bp9fhOCjV4ShZQQcEnZ+iIsmGAoCR08JAW/kVsu55U
8EHxuCv7Tq0L3LhUPqfbmbCO2bZP11d5kAREd4kJxA7o5SO5e2VtDJurf5COjmGXRl31AuafeXLZdtWzdSOuy5/
Lw5k+X2LnKohZYupzZ3I7O+K1x2MOuXMXgg/ZdOyyrkaMGC78s6EFhVGoTfZUU/lH8TE6v2BL0RSqbD4Ty5YZ81
+ZMezUvuyTlY7OdA6Jda/hPd [email protected]
9
File
Copy this
Add key to SSH Agent
$ eval `ssh-agent -s`
Agent pid 7260
10
Add key to SSH Agent
$ eval `ssh-agent -s`
Agent pid 7260
$ ssh-add /home/teerapat_khu/.ssh/ida_rsa.pub
Enter passphrase for ssh-add /home/teerapat_khu/.ssh/ida_rsa.pub:
11
PuTTY Key Generator
12
• On windows use Putty Key generator
PuTTY Key Generator
13
• On windows use Putty Key generator
Copy this
Save to file
Add SSH Key to SourceTree
14
Add SSH Key to Gitlab
15
Profile Settings > SSH Keys
Add SSH Key to Gitlab (cont.)
16
Profile Settings > SSH Keys > Add SSH Key
SourceTree: Create New Repository
17
Git: Create New Repository
$ git initInitialized empty Git repository in
/home/teerapat_khu/mywebapp/.git/
18
SourceTree: Clone Gitlab Project
19
Git: Clone Gitlab Project
$ git clone [email protected]:Teera36/my-
webapp.git
Cloning into 'my-webapp'...
warning: You appear to have cloned an empty repository.
Checking connectivity... done.
20
SourceTree: Add Remote Repository
21
SourceTree: Add Remote Repository
(cont.)
22
SourceTree: Add Remote Repository
(cont.)
23
SourceTree: Add Remote Repository
(cont.)
24
Git: Add Remote Repository
$ git remote add gitlab-vcs \
[email protected]:Teera36/my-
webapp.git
25
SourceTree: Make some change
26
SourceTree: Add file to staged
27
Git: Add file to staged
$ git add .
28
SourceTree: Commit
29
Git: Commit
$ git commit –m “First commit”[develop a75c276] First commit
18 files changed, 724 insertions(+)
create mode 100755 .bowerrc
create mode 100755 .editorconfig
create mode 100755 .gitattributes
create mode 100755 .gitignore
create mode 100755 .jshintrc
create mode 100755 .yo-rc.json
create mode 100755 Gruntfile.js
create mode 100755 app/favicon.ico
create mode 100755 app/index.html
create mode 100755 app/robots.txt
create mode 100755 app/scripts/main.js
create mode 100755 app/styles/main.css
create mode 100755 bower.json
create mode 100755 package.json
create mode 100755 test/.bowerrc
create mode 100755 test/bower.json
create mode 100755 test/index.html
create mode 100755 test/spec/test.js
30
SourceTree: Log/History
31
Git: Log/History
$ git logcommit a75c2764c720fd4fccab54d8ef1e8a7bb6244060
Author: teerapat_khu <[email protected]>
Date: Thu Jun 11 19:02:27 2015 +0700
First commit
32
SourceTree: Push to Remote Repo
33
Git: Push to Remote Repo
$ git push –u gitlab-vcs masterCounting objects: 2, done.
Writing objects: 100% (2/2), 161 bytes | 0 bytes/s, done.
Total 2 (delta 0), reused 0 (delta 0)
To [email protected]:Teera36/my-webapp.git
* [new branch] master -> master
Branch master set up to track remote branch master from gitlab-
vcs.
34
SourceTree: Log/History
35
Git: Log/History
$ git logcommit a75c2764c720fd4fccab54d8ef1e8a7bb6244060
Author: teerapat_khu <[email protected]>
Date: Thu Jun 11 19:02:27 2015 +0700
First commit
36
SourceTree: Git Flow initial
37
Git: Git Flow initial
$ git flow initNo branches exist yet. Base branches must be created now.
Branch name for production releases: [master]
Branch name for "next release" development: [develop]
How to name your supporting branch prefixes?
Feature branches? [feature/]
Release branches? [release/]
Hotfix branches? [hotfix/]
Support branches? [support/]
Version tag prefix? []
38
SouceTree: Log/History
39
Git: Log/History
$ git branch
* develop
master
40
SourceTree: Start new feature
41
SourceTree: Start new feature (cont.)
42
Git: Start new feature
$ git flow feature start Create_Index_PageSwitched to a new branch 'feature/Create_Index_Page'
Summary of actions:
- A new branch 'feature/Create_Index_Page' was created, based on
'develop'
- You are now on branch 'feature/Create_Index_Page'
Now, start committing on your feature. When done, use:
git flow feature finish Create_Index_Page
43
SourceTree: Log/History
44
Git: Log/History
$ git branchdevelop
* feature/Create_Index_Page
master
45
SourceTree: New Feature (add)
46
Git: New Feature (add)
$ vi app/index.html
$ git statusOn branch feature/Create_Index_Page
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working
directory)
modified: app/index.html
no changes added to commit (use "git add" and/or "git commit -a")
47
SourceTree: New Feature (add)
48
Git: New Feature (add)
$ git add .
49
SourceTree: New Feature (commit)
50
Git: New Feature (commit)
$ git commit -m "edit for include css bower
file"[feature/Create_Index_Page 4121469] edit for include
css bower file
1 file changed, 1 insertion(+), 1 deletion(-)
51
SourceTree: New Feature (log)
52
Git: New Feature (log)
$ git branch
develop
* feature/Create_Index_Page
master
$ git log --graph --pretty=oneline --abbrev-commit* 4121469 edit for include css bower file
* a75c276 First commit
53
SourceTree: Finish Feature
54
SourceTree: Finish Feature
55
Git: Finish Feature
$ git flow feature finish Create_Index_Page
Switched to branch 'develop'
Updating a75c276..4121469
Fast-forward
app/index.html | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Deleted branch feature/Create_Index_Page (was 4121469).
Summary of actions:
- The feature branch 'feature/Create_Index_Page' was
merged into 'develop'
- Feature branch 'feature/Create_Index_Page' has been
removed
- You are now on branch 'develop'
56
SourceTree: Log/History
57
Git: Log/History
$ git branch
* develop
master
$ git log --graph --pretty=oneline --abbrev-commit* 4121469 edit for include css bower file
* a75c276 First commit
58
SourceTree: Start New Release
59
SourceTree: Start New Release
60
Git: Start New Release
$ git flow release start MyWebApp-1.0-unstableSwitched to a new branch 'release/MyWebApp-1.0-unstable'
Summary of actions:- A new branch 'release/MyWebApp-1.0-unstable' was created, based on 'develop'- You are now on branch 'release/MyWebApp-1.0-unstable'
Follow-up actions:- Bump the version number now!- Start committing last-minute fixes in preparing your release- When done, run:
git flow release finish 'MyWebApp-1.0-unstable'
61
Git: Log/History
$ git branch
develop
master
* release/MyWebApp-1.0-unstable
$ git log --graph --pretty=oneline --abbrev-commit* 4121469 edit for include css bower file
* a75c276 First commit
62
SourceTree: Finish Release
63
SourceTree: Finish Release and add Tag
64
Git: Finish Release
$ git flow release finish MyWebApp-1.0-unstableSwitched to branch 'master'
Your branch is up-to-date with 'gitlab-vcs/master'.
Merge made by the 'recursive' strategy.
.bowerrc | 3 ++
.editorconfig | 21 +++++++++
.gitattributes | 1 +
Deleted branch release/MyWebApp-1.0-unstable (was
4121469).
Summary of actions:
- Latest objects have been fetched from 'origin'
- Release branch has been merged into 'master'
- The release was tagged 'MyWebApp-1.0-unstable'
- Release branch has been back-merged into 'develop'
- Release branch 'release/MyWebApp-1.0-unstable' has been
deleted
65
SourceTree: Log/History
66
Git: Log/History
$ git branch
develop
* master
$ git log --graph --pretty=oneline --abbrev-commit* 8811504 Merge branch 'release/MyWebApp-1.0-unstable'
|\
| * 4121469 edit for include css bower file
| |
|/
* a75c276 First commit
67
Gitlab: View Branch
68
Gitlab: Create New Branch
69
Gitlab: Create New Branch
70
SourceTree: Fetch From Remote Repo
71
Git: Fetch From Remote Repo
$ git fetch gitlab-vcs
From gitlab.vcs.true.th:Teera36/my-webapp
* [new branch] develop -> gitlab-vcs/develop
72
SourceTree: Push to Remote Repo
73
Git: Push to Remote Repo
$ git push -u gitlab-vcs develop
Total 0 (delta 0), reused 0 (delta 0)
To [email protected]:Teera36/my-webapp.git
b28c91b..4121469 develop -> develop
Branch develop set up to track remote branch develop from
gitlab-vcs.
74
Make some changes
75
SourceTree: Log/History
76
Git: Log/History
$ git checkout developSwitched to branch 'develop'
Your branch is up-to-date with 'gitlab-vcs/develop'.
$ vim app/index.html
$ git add .
$ git commit -m "Add \"Sign up\" Menu"[develop 13c959a] Add "Sign up" Menu
1 file changed, 1 insertion(+)
$ git log --graph --pretty=oneline --abbrev-commit* 13c959a Add "Sign up" Menu
* 4121469 edit for include css bower file
* a75c276 First commit
77
SourceTree: Add Commit on Develop
78
Git: Add Commit on Develop
$ vim app/index.html
$ git add .
$ git commit -m “Fix css"[develop 1c8980f] Fix css
1 file changed, 1 insertion(+)
$ git log --graph --pretty=oneline --abbrev-commit* 1c8980f Fix css
* 13c959a Add "Sign up" Menu
* 4121469 edit for include css bower file
* a75c276 First commit
79
SourceTree: Start New Release
80
SourceTree: Start New Release
81
Git: Start New Release
$ git flow release start MyWebApp-1.1-unstableSwitched to a new branch 'release/MyWebApp-1.1-unstable'
Summary of actions:
- A new branch 'release/MyWebApp-1.1-unstable' was
created, based on 'develop'
- You are now on branch 'release/MyWebApp-1.1-unstable'
Follow-up actions:
- Bump the version number now!
- Start committing last-minute fixes in preparing your
release
- When done, run:
git flow release finish 'MyWebApp-1.1-unstable'
82
SourceTree: Log/History
83
Git Log/History
$ git branchdevelop
master
* release/MyWebApp-1.1-unstable
84
SourceTree: Finish Release
85
SourceTree: Finish Release
86
Git: Finish Release
$ git flow release finish MyWebApp-1.1-unstableSwitched to branch 'master'
Your branch is up-to-date with 'gitlab-vcs/master'.
Merge made by the 'recursive' strategy.
app/index.html | 2 ++
1 file changed, 2 insertions(+)
Deleted branch release/MyWebApp-1.1-unstable (was
1c8980f).
Summary of actions:
- Latest objects have been fetched from 'origin'
- Release branch has been merged into 'master'
- The release was tagged 'MyWebApp-1.1-unstable'
- Release branch has been back-merged into 'develop'
- Release branch 'release/MyWebApp-1.1-unstable' has been
deleted
87
SourceTree: Finish Release
88
Git: Log/History
$ git branchdevelop
* master
$ git log --graph --pretty=oneline --abbrev-commit* e7fe2e7 Merge branch 'release/MyWebApp-1.1-unstable'
|\
| * 1c8980f Fix css
| * 13c959a Add "Sign up" Menu
* | 8811504 Merge branch 'release/MyWebApp-1.0-unstable'
|\ \
| |/
| * 4121469 edit for include css bower file
| |
|/
* a75c276 First commit
89
SourceTree: Push to Remote Repo
90
Git: Push to Remote Repo
$ git push -u gitlab-vcs developCounting objects: 8, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (8/8), done.
Writing objects: 100% (8/8), 701 bytes | 0 bytes/s, done.
Total 8 (delta 6), reused 0 (delta 0)
To [email protected]:Teera36/my-webapp.git
4121469..1c8980f develop -> develop
Branch develop set up to track remote branch develop from
gitlab-vcs.
91
Gitlab: Merge Request
92
Gitlab: Merge Request (code review)
93
Gitlab: Merge Request (code review)
94
Gitlab: Merge Request
95
Gitlab: Merge Request
96
Gitlab: Merge Request
(Accept request)
97
Gitlab: Merge Request
(Accept request)
98
Gitlab: History/Log
99
Make some changes
100
Gitlab: History/Log
101
Gitlab: History/Log
102