25. No Network Needed
Performing a diff
Viewing file history
GitBasic
24
26. No Network Needed
Performing a diff
Viewing file history
Committing changes
GitBasic
25
27. No Network Needed
Performing a diff
Viewing file history
Committing changes
Merging branches
Obtaining other revisions of a file
GitBasic
26
28. No Network Needed
Performing a diff
Viewing file history
Committing changes
Merging branches
Obtaining other revisions of a file
Switching branches
GitBasic
27
34. This is Johnson Su’s excellent project.
Licensed under GPL.
README.txt
#include<stdio.h>
hello.c
intmain(void){
printf(“Hellon”);
return 0;
}
34
35. This is Johnson Su’s excellent project.
Licensed under GPL.
README.txt
#include<stdio.h>
hello.c
intmain(void){
printf(“Hellon”);
return 0;
}
README.txt
hello.c
Commit
A
This is Johnson Su’s excellent project.
Licensed under GPL.
#include<stdio.h>
intmain(void){
printf(“Hellon”);
return 0;
}
.
35
36. This is Johnson Su’s excellent project.
Licensed under GPL.
README.txt
#include<stdio.h>
hello.c
intmain(void){
printf(“Hellon”);
return 0;
}
README.txt
hello.c
Commit
A
This is Johnson Su’s excellent project.
Licensed under GPL.
#include<stdio.h>
intmain(void){
printf(“Hellon”);
return 0;
}
.
36
37. This is Johnson Su’s excellent project.
Licensed under GPL.
README.txt
#include<stdio.h>
hello.c
intmain(void){
printf(“Jellon”);
return 0;
}
README.txt
hello.c
Commit
A
This is Johnson Su’s excellent project.
Licensed under GPL.
#include<stdio.h>
intmain(void){
printf(“Hellon”);
return 0;
}
.
37
38. This is Johnson Su’s excellent project.
Licensed under GPL.
README.txt
#include<stdio.h>
hello.c
intmain(void){
printf(“Jellon”);
return 0;
}
Commit
B
-printf("Hellon");
+ printf(“Jellon");
README.txt
hello.c
Commit
A
This is Johnson Su’s excellent project.
Licensed under GPL.
#include<stdio.h>
intmain(void){
printf(“Hellon”);
return 0;
}
.
38
39. This is Johnson Su’s excellent project.
Licensed under GPL.
README.txt
#include<stdio.h>
hello.c
intmain(void){
printf(“Jellon”);
return 0;
}
Commit
B
-printf("Hellon");
+ printf(“Jellon");
README.txt
hello.c
Commit
A
This is Johnson Su’s excellent project.
Licensed under GPL.
#include<stdio.h>
intmain(void){
printf(“Hellon”);
return 0;
}
.
39
40. This is Johnson Su’s excellent project.
Licensed under GPL.
README.txt
#include<stdio.h>
jello.c
intmain(void){
printf(“Jellon”);
return 0;
}
Commit
B
-printf("Hellon");
+ printf(“Jellon");
README.txt
hello.c
Commit
A
This is Johnson Su’s excellent project.
Licensed under GPL.
#include<stdio.h>
intmain(void){
printf(“Hellon”);
return 0;
}
.
40
41. This is Johnson Su’s excellent project.
Licensed under GPL.
README.txt
#include<stdio.h>
jello.c
intmain(void){
printf(“Jellon”);
return 0;
}
Commit
B
-printf("Hellon");
+ printf(“Jellon");
README.txt
hello.c
Commit
A
This is Johnson Su’s excellent project.
Licensed under GPL.
#include<stdio.h>
intmain(void){
printf(“Hellon”);
return 0;
}
.
jello.c
(rename)
Commit
C
41
42. This is Johnson Su’s jelloproject.
Licensed under GPL.
README.txt
#include<stdio.h>
jello.c
intmain(void){
printf(“Jellon”);
return 0;
}
Commit
B
-printf("Hellon");
+ printf(“Jellon");
README.txt
hello.c
Commit
A
This is Johnson Su’s excellent project.
Licensed under GPL.
#include<stdio.h>
intmain(void){
printf(“Hellon”);
return 0;
}
.
jello.c
(rename)
Commit
C
42
43. This is Johnson Su’s jelloproject.
Licensed under GPL.
README.txt
#include<stdio.h>
jello.c
intmain(void){
printf(“Jellon”);
return 0;
}
#include<stdio.h>
hello.c
intmain(void){
printf(“Jellon”);
return 0;
}
Commit
B
-printf("Hellon");
+ printf(“Jellon");
README.txt
hello.c
Commit
A
This is Johnson Su’s excellent project.
Licensed under GPL.
#include<stdio.h>
intmain(void){
printf(“Hellon”);
return 0;
}
.
jello.c
(rename)
Commit
C
43
44. This is Johnson Su’s jelloproject.
Licensed under GPL.
README.txt
#include<stdio.h>
jello.c
intmain(void){
printf(“Jellon”);
return 0;
}
#include<stdio.h>
hello.c
intmain(void){
printf(“Jellon”);
return 0;
}
Commit
B
-printf("Hellon");
+ printf(“Jellon");
README.txt
hello.c
Commit
A
This is Johnson Su’s excellent project.
Licensed under GPL.
#include<stdio.h>
intmain(void){
printf(“Hellon”);
return 0;
}
.
jello.c
(rename)
Commit
C
Commit
D
-excellent
+ Jello
(rename)
44
45. This is Johnson Su’s jelloproject.
Licensed under GPL.
README.txt
#include<stdio.h>
jello.c
intmain(void){
printf(“Jellon”);
return 0;
}
#include<stdio.h>
hello.c
intmain(void){
printf(“Jellon”);
return 0;
}
Commit
B
-printf("Hellon");
+ printf(“Jellon");
README.txt
hello.c
Commit
A
This is Johnson Su’s excellent project.
Licensed under GPL.
#include<stdio.h>
intmain(void){
printf(“Hellon”);
return 0;
}
.
jello.c
(rename)
Commit
C
Commit
D
-excellent
+ Jello
(rename)
45
47. This is Johnson Su’s excellent project.
Licensed under GPL.
README.txt
#include<stdio.h>
hello.c
intmain(void){
printf(“Hellon”);
return 0;
}
47
48. This is Johnson Su’s excellent project.
Licensed under GPL.
README.txt
#include<stdio.h>
hello.c
intmain(void){
printf(“Hellon”);
return 0;
}
This is Johnson Su’s excellent project.
Licensed under GPL.
#include<stdio.h>
intmain(void){
printf(“Hellon”);
return 0;
}
c3d
f13
CHECKSUM
48
49. This is Johnson Su’s excellent project.
Licensed under GPL.
README.txt
#include<stdio.h>
hello.c
intmain(void){
printf(“Hellon”);
return 0;
}
This is Johnson Su’s excellent project.
Licensed under GPL.
#include<stdio.h>
intmain(void){
printf(“Hellon”);
return 0;
}
c3d
f13
CHECKSUM
49
50. This is Johnson Su’s excellent project.
Licensed under GPL.
README.txt
#include<stdio.h>
hello.c
intmain(void){
printf(“Hellon”);
return 0;
}
This is Johnson Su’s excellent project.
Licensed under GPL.
#include<stdio.h>
intmain(void){
printf(“Hellon”);
return 0;
}
c3d
f13
Commit
A
c3dREADME.txt
f13hello.c
50
51. This is Johnson Su’s excellent project.
Licensed under GPL.
README.txt
#include<stdio.h>
hello.c
intmain(void){
printf(“Hellon”);
return 0;
}
This is Johnson Su’s excellent project.
Licensed under GPL.
#include<stdio.h>
intmain(void){
printf(“Hellon”);
return 0;
}
c3d
f13
Commit
A
c3dREADME.txt
f13hello.c
51
52. This is Johnson Su’s excellent project.
Licensed under GPL.
README.txt
#include<stdio.h>
hello.c
intmain(void){
printf(“Hellon”);
return 0;
}
Commit
A
c3dREADME.txt
f13hello.c
This is Johnson Su’s excellent project.
Licensed under GPL.
#include<stdio.h>
intmain(void){
printf(“Hellon”);
return 0;
}
c3d
f13
52
53. This is Johnson Su’s excellent project.
Licensed under GPL.
README.txt
#include<stdio.h>
hello.c
intmain(void){
printf(“Hellon”);
return 0;
}
Commit
A
c3dREADME.txt
f13hello.c
This is Johnson Su’s excellent project.
Licensed under GPL.
#include<stdio.h>
intmain(void){
printf(“Hellon”);
return 0;
}
c3d
f13
53
54. This is Johnson Su’s excellent project.
Licensed under GPL.
README.txt
#include<stdio.h>
hello.c
intmain(void){
printf(“Jellon”);
return 0;
}
This is Johnson Su’s excellent project.
Licensed under GPL.
#include<stdio.h>
intmain(void){
printf(“Hellon”);
return 0;
}
c3d
f13
Commit
A
c3dREADME.txt
f13hello.c
54
55. This is Johnson Su’s excellent project.
Licensed under GPL.
README.txt
#include<stdio.h>
hello.c
intmain(void){
printf(“Jellon”);
return 0;
}
This is Johnson Su’s excellent project.
Licensed under GPL.
#include<stdio.h>
intmain(void){
printf(“Hellon”);
return 0;
}
c3d
f13
Commit
A
c3dREADME.txt
f13hello.c
Commit
B
c3dREADME.txt
6d4hello.c
#include<stdio.h>
intmain(void){
printf(“Jellon”);
return 0;
}
6d4
55
56. This is Johnson Su’s excellent project.
Licensed under GPL.
README.txt
#include<stdio.h>
hello.c
intmain(void){
printf(“Jellon”);
return 0;
}
This is Johnson Su’s excellent project.
Licensed under GPL.
#include<stdio.h>
intmain(void){
printf(“Hellon”);
return 0;
}
c3d
f13
Commit
A
c3dREADME.txt
f13hello.c
Commit
B
c3dREADME.txt
6d4hello.c
#include<stdio.h>
intmain(void){
printf(“Jellon”);
return 0;
}
6d4
56
57. This is Johnson Su’s excellent project.
Licensed under GPL.
README.txt
#include<stdio.h>
hello.c
intmain(void){
printf(“Jellon”);
return 0;
}
This is Johnson Su’s excellent project.
Licensed under GPL.
#include<stdio.h>
intmain(void){
printf(“Hellon”);
return 0;
}
c3d
f13
Commit
A
c3dREADME.txt
f13hello.c
Commit
B
c3dREADME.txt
6d4hello.c
#include<stdio.h>
intmain(void){
printf(“Jellon”);
return 0;
}
6d4
57
58. This is Johnson Su’s excellent project.
Licensed under GPL.
README.txt
#include<stdio.h>
jello.c
intmain(void){
printf(“Jellon”);
return 0;
}
This is Johnson Su’s excellent project.
Licensed under GPL.
#include<stdio.h>
intmain(void){
printf(“Hellon”);
return 0;
}
c3d
f13
Commit
A
c3dREADME.txt
f13hello.c
Commit
B
c3dREADME.txt
6d4hello.c
#include<stdio.h>
intmain(void){
printf(“Jellon”);
return 0;
}
6d4
58
59. This is Johnson Su’s excellent project.
Licensed under GPL.
README.txt
#include<stdio.h>
jello.c
intmain(void){
printf(“Jellon”);
return 0;
}
This is Johnson Su’s excellent project.
Licensed under GPL.
#include<stdio.h>
intmain(void){
printf(“Hellon”);
return 0;
}
c3d
f13
Commit
A
c3dREADME.txt
f13hello.c
Commit
B
c3dREADME.txt
6d4hello.c
#include<stdio.h>
intmain(void){
printf(“Jellon”);
return 0;
}
6d4
Commit
C
c3dREADME.txt
6d4jello.c
59
60. This is Johnson Su’s excellent project.
Licensed under GPL.
README.txt
#include<stdio.h>
jello.c
intmain(void){
printf(“Jellon”);
return 0;
}
This is Johnson Su’s excellent project.
Licensed under GPL.
#include<stdio.h>
intmain(void){
printf(“Hellon”);
return 0;
}
c3d
f13
Commit
A
c3dREADME.txt
f13hello.c
Commit
B
c3dREADME.txt
6d4hello.c
#include<stdio.h>
intmain(void){
printf(“Jellon”);
return 0;
}
6d4
Commit
C
c3dREADME.txt
6d4jello.c
60
61. This is Johnson Su’s excellent project.
Licensed under GPL.
README.txt
#include<stdio.h>
jello.c
intmain(void){
printf(“Jellon”);
return 0;
}
This is Johnson Su’s excellent project.
Licensed under GPL.
#include<stdio.h>
intmain(void){
printf(“Hellon”);
return 0;
}
c3d
f13
Commit
A
c3dREADME.txt
f13hello.c
Commit
B
c3dREADME.txt
6d4hello.c
#include<stdio.h>
intmain(void){
printf(“Jellon”);
return 0;
}
6d4
Commit
C
c3dREADME.txt
6d4jello.c
61
62. This is Johnson Su’s excellent project.
Licensed under GPL.
#include<stdio.h>
intmain(void){
printf(“Hellon”);
return 0;
}
c3d
f13
Commit
A
c3dREADME.txt
f13hello.c
Commit
B
c3dREADME.txt
6d4hello.c
#include<stdio.h>
intmain(void){
printf(“Jellon”);
return 0;
}
6d4
Commit
C
c3dREADME.txt
6d4jello.c
This is Johnson Su’s Jelloproject.
Licensed under GPL.
README.txt
#include<stdio.h>
jello.c
intmain(void){
printf(“Jellon”);
return 0;
}
62
63. This is Johnson Su’s excellent project.
Licensed under GPL.
#include<stdio.h>
intmain(void){
printf(“Hellon”);
return 0;
}
c3d
f13
Commit
A
c3dREADME.txt
f13hello.c
Commit
B
c3dREADME.txt
6d4hello.c
#include<stdio.h>
intmain(void){
printf(“Jellon”);
return 0;
}
6d4
Commit
C
c3dREADME.txt
6d4jello.c
This is Johnson Su’s Jelloproject.
Licensed under GPL.
README.txt
#include<stdio.h>
jello.c
intmain(void){
printf(“Jellon”);
return 0;
}
#include<stdio.h>
hello.c
intmain(void){
printf(“Jellon”);
return 0;
}
63
64. This is Johnson Su’s excellent project.
Licensed under GPL.
#include<stdio.h>
intmain(void){
printf(“Hellon”);
return 0;
}
c3d
f13
Commit
A
c3dREADME.txt
f13hello.c
Commit
B
c3dREADME.txt
6d4hello.c
#include<stdio.h>
intmain(void){
printf(“Jellon”);
return 0;
}
6d4
Commit
C
c3dREADME.txt
6d4jello.c
This is Johnson Su’s Jelloproject.
Licensed under GPL.
README.txt
#include<stdio.h>
jello.c
intmain(void){
printf(“Jellon”);
return 0;
}
#include<stdio.h>
hello.c
intmain(void){
printf(“Jellon”);
return 0;
}
This is Johnson Su’s Jelloproject.
Licensed under GPL.
84f
64
65. This is Johnson Su’s excellent project.
Licensed under GPL.
#include<stdio.h>
intmain(void){
printf(“Hellon”);
return 0;
}
c3d
f13
Commit
A
c3dREADME.txt
f13hello.c
Commit
B
c3dREADME.txt
6d4hello.c
#include<stdio.h>
intmain(void){
printf(“Jellon”);
return 0;
}
6d4
Commit
C
c3dREADME.txt
6d4jello.c
This is Johnson Su’s Jelloproject.
Licensed under GPL.
README.txt
#include<stdio.h>
jello.c
intmain(void){
printf(“Jellon”);
return 0;
}
#include<stdio.h>
hello.c
intmain(void){
printf(“Jellon”);
return 0;
}
This is Johnson Su’s Jelloproject.
Licensed under GPL.
84f
Commit
D
84fREADME.txt
6d4jello.c
6d4hello.c
65
66. This is Johnson Su’s excellent project.
Licensed under GPL.
#include<stdio.h>
intmain(void){
printf(“Hellon”);
return 0;
}
c3d
f13
Commit
A
c3dREADME.txt
f13hello.c
Commit
B
c3dREADME.txt
6d4hello.c
#include<stdio.h>
intmain(void){
printf(“Jellon”);
return 0;
}
6d4
Commit
C
c3dREADME.txt
6d4jello.c
This is Johnson Su’s Jelloproject.
Licensed under GPL.
README.txt
#include<stdio.h>
jello.c
intmain(void){
printf(“Jellon”);
return 0;
}
#include<stdio.h>
hello.c
intmain(void){
printf(“Jellon”);
return 0;
}
This is Johnson Su’s Jelloproject.
Licensed under GPL.
84f
Commit
D
84fREADME.txt
6d4jello.c
6d4hello.c
66
71. $ gitconfig--global user.name “Johnson J. Su”
$ gitconfig--global user.email“johnsonsu@iis.sinica.edu.tw”
Setting Up Git
$ gitconfig--global color.uiture
71
GitBasic
72. Let’s start using Git
first…
Create or Clone a Gitrepository
72
GitBasic
73. Two way to get Gitrepository…
$ gitclone https://example.com/example.git
$ mkdirproject
$ cd project
$ gitinit
gitclone repository from remote server
gitinitial a repository in local system
73
GitBasic
74. 74
GitBasic
Johnson creates README.txt file
Add file to staging area
Commit changes
Johnson modifies README.txt file & adds hello.c
Add both file to staging area
Commit changes
81. $ vim README.txt
Use the following commands:
This is Johnson Su’s excellentproject.
Licensed under GPL.
README.txt
81
GitBasic
82. $ vim README.txt
$ touch hello.c
Use the following commands:
This is Johnson Su’s excellentproject.
Licensed under GPL.
README.txt
hello.c
82
GitBasic
83. $ vim README.txt
$ touch hello.c
$ vim hello.c
Use the following commands:
This is Johnson Su’s excellentproject.
Licensed under GPL.
README.txt
hello.c
83
GitBasic
84. $ vim README.txt
$ touch hello.c
$ vim hello.c
Use the following commands:
This is Johnson Su’s excellentproject.
Licensed under GPL.
README.txt
#include<stdio.h>
hello.c
intmain(void){
printf(“Hellon”);
return 0;
}
84
GitBasic
85. Untracked
Unmodified
Modified
Staged
initial
gitinit
add the file
add/edit the file
stage the file
gitadd filename
gitadd filename
File Status Lifecycle
85
GitBasic
86. $ gitadd .
$ gitstatus
$ gitcommit –m “modify README.txt and add hello.cfile”
Use the following commands:
The commit message must be very clear!!
(Recommend) 86
GitBasic
87. Untracked
Unmodified
Modified
Staged
initial
gitinit
add the file
add/edit the file
stage the file
gitadd filename
Commit a version
gitadd filename
gitcommit
File Status Lifecycle
87
GitBasic
88. Untracked
Unmodified
Modified
Staged
initial
gitinit
add the file
add/edit the file
stage the file
gitadd filename
Commit a version
Remove the file
gitadd filename
gitcommit
gitrmfilename
File Status Lifecycle
88
GitBasic
89. $ gitstatus
$ gitrmhello.c
$ gitstatus
Use the following commands:
89
GitBasic
91. Untracked
Unmodified
Modified
Staged
initial
gitinit
add the file
add/edit the file
stage the file
gitadd filename
Commit a version
gitadd filename
gitcommit
File Status Lifecycle
add/edit the file
gitcheckout filename
91
GitBasic
92. $ vim hello.c
Use the following commands:
#include<stdio.h>
hello.c
intmain(void){
printf(“Hellon”);
return 0;
}
intmain(void){
printf(“Hellon”);
return 0;
!@#$%%&*($%@#$%&
}
92
GitBasic
93. $ vim hello.c
$ gitcheckout hello.c
Use the following commands:
#include<stdio.h>
hello.c
intmain(void){
printf(“Hellon”);
return 0;
}
intmain(void){
printf(“Hellon”);
return 0;
!@#$%%&*($%@#$%&
}
#include<stdio.h>
hello.c
intmain(void){
printf(“Hellon”);
return 0;
}
93
GitBasic
94. Untracked
Unmodified
Modified
Staged
initial
gitinit
add the file
add/edit the file
stage the file
gitadd filename
Commit a version
gitadd filename
gitcommit
File Status Lifecycle
add/edit the file
gitreset HEAD filename
stage the file
gitadd filename
94
GitBasic
95. Use the following commands:
#include<stdio.h>
hello.c
intmain(void){
printf(“Hellon”);
return 0;
}
intmain(void){
printf(“Hellon”);
return 0;
!@#$%%&*($%@#$%&
}
95
GitBasic
$ vim hello.c
96. Use the following commands:
#include<stdio.h>
hello.c
intmain(void){
printf(“Hellon”);
return 0;
}
intmain(void){
printf(“Hellon”);
return 0;
!@#$%%&*($%@#$%&
}
96
GitBasic
$ vim hello.c
$ gitadd hello.c
97. Use the following commands:
#include<stdio.h>
hello.c
intmain(void){
printf(“Hellon”);
return 0;
}
intmain(void){
printf(“Hellon”);
return 0;
!@#$%%&*($%@#$%&
}
97
GitBasic
$ vim hello.c
$ gitadd hello.c
$ gitreset HEAD hello.c
98. $ vim hello.c
$ gitadd hello.c
$ gitreset HEAD hello.c
$ gitcheckout hello.c
Use the following commands:
#include<stdio.h>
hello.c
intmain(void){
printf(“Hellon”);
return 0;
}
intmain(void){
printf(“Hellon”);
return 0;
!@#$%%&*($%@#$%&
}
#include<stdio.h>
hello.c
intmain(void){
printf(“Hellon”);
return 0;
} 98
GitBasic
99. $ gitadd <list of files>
Different ways to add files to staging area
99
GitBasic
$ gitadd *.txt
$ gitadd main/*.txt
$ gitadd main/
$ gitadd “*.txt”
$ gitadd --all
Add the list of files
Add all files
Add all txt files in current directory
Add all txt files in main directory
Add all files in main directory
Add all txt files in the whole project
Useful commands
102. gitlog
If you want to review all the commits…
102
GitBasic
103. $ gitlog
commit 71358d83b0249362851174566042d2f3a412f985
Author: Johnson <johnsonsu@iis.sinica.edu.tw>
Date: Thu Jul 3 08:52:41 2014 +0800
modify README.txt and add hello.cfile
commit 2889fd9d34ad71ea9e29046c1e529c7b0786fcb9
Author: Johnson <johnsonsu@iis.sinica.edu.tw>
Date: Thu Jul 3 08:52:41 2014 +0800
Initial commit
Use the following commands:
103
GitBasic
master
104. gitdiff
If you want to review some differences
since last commit
104
GitBasic
105. If you want to modify last commit message…?
105
GitBasic
106. $ gitcommit –m “!@#$^%&*()_”
$ gitlog
$ gitreset --soft HEAD^
$ gitlog
$ gitcommit –m “add new file xxx”
$ gitlog
Use the following commands:
A
106
GitBasic
107. $ gitcommit –m “!@#$^%&*()_”
$ gitlog
$ gitcommit -amend
$ gitlog
Use the following commands:
add new file xxx
107
GitBasic
B
108. $ gitcommit –m “!@#$^%&*()_”
$ gitlog
$ gitcommit -amend
$ gitlog
Use the following commands:
add new file xxx
108
GitBasic
B
109. $ gitreset ––soft HEAD^
Different ways to add files to staging area
109
GitBasic
$ gitreset ––hard HEAD^
$ gitreset ––hard HEAD^^
$ gitcommit ––amend –m “New Message”
Undo last commit, put changes into staging
Change the last commit
Undo last commit and all changes
Undo last 2 commits and all changes
Useful commands
122. 122
GitBasic
$ gitremote add <name> <address>
Working with remotes
$ gitpush –u <name> <branch>
$ gitremote rm<name>
To add new remotes
To remove remotes
To push to remotes
Useful commands
124. $ gitreset ––soft HEAD^
Don’t do these after you push
124
GitBasic
$ gitreset ––hard HEAD^
$ gitreset ––hard HEAD^^
$ gitcommit ––amend –m “New Message”
Undo last commit, put changes into staging
Change the last commit
Undo last commit and all changes
Undo last 2 commits and all changes
125. $ gitreset ––soft HEAD^
Don’t do these after you push
125
GitBasic
$ gitreset ––hard HEAD^
$ gitreset ––hard HEAD^^
$ gitcommit ––amend –m “New Message”
Undo last commit, put changes into staging
Change the last commit
Undo last commit and all changes
Undo last 2 commits and all changes
139. Topic
139
gittag
Like most VCSs, Githas the ability to tag specific points in history as being important.
140. 140
GitBasic
$ gittag
v0.0.1
v0.0.2
Tagging
$ gittag –a v0.0.3 –m “version 0.0.3”
$ gitcheckout v0.0.1
List all tags
Check out code at commit
To add a new tag
Useful commands
$ gitpush --tags
To push new tags