1
00:00:01,320 --> 00:00:05,390
<v Instructor>Let's now quickly go over the basics of Git.</v>

2
00:00:05,390 --> 00:00:07,930
And this video is by no means

3
00:00:07,930 --> 00:00:10,820
gonna be a complete overview of Git.

4
00:00:10,820 --> 00:00:13,410
All I want to do here is to get you started

5
00:00:13,410 --> 00:00:15,580
as quick as possible with Git,

6
00:00:15,580 --> 00:00:18,867
so that we can then push our project to GitHub.

7
00:00:20,710 --> 00:00:25,390
All right, now before we can do anything else with git,

8
00:00:25,390 --> 00:00:26,590
in each repository,

9
00:00:26,590 --> 00:00:30,193
we should have a git ignore file like this.

10
00:00:31,160 --> 00:00:34,810
So if VS code didn't create it automatically for you,

11
00:00:34,810 --> 00:00:37,070
as it did for me in the last lecture,

12
00:00:37,070 --> 00:00:39,983
then please go ahead and create this file right now.

13
00:00:40,890 --> 00:00:42,760
So it starts with a dot,

14
00:00:42,760 --> 00:00:44,570
and then Git ignore.

15
00:00:44,570 --> 00:00:46,930
And inside of this file,

16
00:00:46,930 --> 00:00:50,400
we can put all the folders and also files,

17
00:00:50,400 --> 00:00:53,150
which we want Git to ignore,

18
00:00:53,150 --> 00:00:55,903
or in other words, folders and files

19
00:00:55,903 --> 00:00:59,660
that we do not want to get into our repository.

20
00:00:59,660 --> 00:01:03,370
And node modules is a perfect example of that.

21
00:01:03,370 --> 00:01:05,750
Because, well, we can always get

22
00:01:05,750 --> 00:01:08,890
this code back from NPM, right?

23
00:01:08,890 --> 00:01:12,230
It is not part of our original source code.

24
00:01:12,230 --> 00:01:16,870
And so therefore, we don't need it in our Git repository.

25
00:01:16,870 --> 00:01:21,390
And actually, the same is true for our dist folder.

26
00:01:21,390 --> 00:01:23,880
Right, so the dist folder,

27
00:01:23,880 --> 00:01:26,130
essentially only contains code

28
00:01:26,130 --> 00:01:29,350
that was built from our source code.

29
00:01:29,350 --> 00:01:32,630
And so again, this is actually code

30
00:01:32,630 --> 00:01:35,770
that we do not need in our Git repository.

31
00:01:35,770 --> 00:01:37,860
So usually, in the repository,

32
00:01:37,860 --> 00:01:41,220
we only want like the original source code,

33
00:01:41,220 --> 00:01:43,290
and everything that is necessary

34
00:01:43,290 --> 00:01:48,280
in order to basically compile our final project later.

35
00:01:48,280 --> 00:01:51,643
So let's actually also exclude the dist folder here.

36
00:01:53,700 --> 00:01:55,600
Now, this is not mandatory,

37
00:01:55,600 --> 00:01:59,470
and some people want also to keep their dist folder

38
00:01:59,470 --> 00:02:01,340
in the Git repository.

39
00:02:01,340 --> 00:02:05,310
But personally, I think it's a good idea not to include it.

40
00:02:05,310 --> 00:02:09,460
And so you see that now, it got grayed out here as well.

41
00:02:09,460 --> 00:02:12,333
And the same for the parcel cache folder.

42
00:02:13,170 --> 00:02:14,853
So that we also don't want.

43
00:02:16,070 --> 00:02:20,163
So .parcel-cache.

44
00:02:21,090 --> 00:02:22,780
So that's gone now.

45
00:02:22,780 --> 00:02:25,030
And now here, VS code shows us

46
00:02:25,030 --> 00:02:27,560
that there are basically 28 files

47
00:02:27,560 --> 00:02:30,613
in our repository that are pending changes.

48
00:02:31,600 --> 00:02:35,310
So this here is enough for our Git ignore.

49
00:02:35,310 --> 00:02:37,080
Now only if you're using the Mac,

50
00:02:37,080 --> 00:02:41,663
you can add one type of file here, which is the .Ds_Store,

51
00:02:46,010 --> 00:02:47,930
which is some kind of weird file

52
00:02:47,930 --> 00:02:50,963
that Mac OS sometimes adds to our directories.

53
00:02:52,610 --> 00:02:53,443
But with this here,

54
00:02:53,443 --> 00:02:57,123
I think we're already at a good starting point, okay?

55
00:02:58,580 --> 00:03:02,697
So let's now run a Git command called git status.

56
00:03:05,030 --> 00:03:06,820
And so this shows us here,

57
00:03:06,820 --> 00:03:10,570
that all of these files are untracked files.

58
00:03:10,570 --> 00:03:13,610
And we can also see that we are on branch Master,

59
00:03:13,610 --> 00:03:16,190
and that there are no commits yet.

60
00:03:16,190 --> 00:03:19,060
So all of these files here are untracked.

61
00:03:19,060 --> 00:03:21,080
And so now we need to track them,

62
00:03:21,080 --> 00:03:24,240
which in terms of git means to add them

63
00:03:24,240 --> 00:03:26,890
to the so called Staging area.

64
00:03:26,890 --> 00:03:29,560
So you can also see here in VS code,

65
00:03:29,560 --> 00:03:32,080
that these files are now untracked.

66
00:03:32,080 --> 00:03:34,023
So that's what this U stands for.

67
00:03:35,230 --> 00:03:38,350
Okay, but now, let's add all these files

68
00:03:38,350 --> 00:03:43,090
to the staging area by saying git add,

69
00:03:43,090 --> 00:03:47,880
and then dash A, which stands for all the files.

70
00:03:47,880 --> 00:03:50,260
Now, we could also add files manually.

71
00:03:50,260 --> 00:03:54,400
So one by one, but usually that's never necessary.

72
00:03:54,400 --> 00:03:57,690
So I will simply add all of my files now.

73
00:03:57,690 --> 00:04:01,623
And so these files are now basically part of the repository.

74
00:04:02,500 --> 00:04:05,880
Okay, and so now here it says, edit.

75
00:04:05,880 --> 00:04:08,850
And so these files are now basically tracked,

76
00:04:08,850 --> 00:04:09,973
they are active.

77
00:04:11,350 --> 00:04:15,600
Okay, then let's say we do some change in one of them,

78
00:04:15,600 --> 00:04:17,113
let's say in the controller,

79
00:04:18,270 --> 00:04:20,450
let's just log something to the console

80
00:04:20,450 --> 00:04:24,643
in the init function, let's say welcome.

81
00:04:25,700 --> 00:04:30,260
And so now you see that this file was modified, right?

82
00:04:30,260 --> 00:04:33,550
And also immediately here on the sidebar,

83
00:04:33,550 --> 00:04:36,620
VS code tells us that something has changed.

84
00:04:36,620 --> 00:04:39,420
And so green here means that something was added.

85
00:04:39,420 --> 00:04:42,800
And when we click that, we can actually see the change.

86
00:04:42,800 --> 00:04:45,483
So the plus here means that something was added.

87
00:04:47,620 --> 00:04:49,903
And if we see git status now again,

88
00:04:51,880 --> 00:04:54,860
you will see that all of these files here,

89
00:04:54,860 --> 00:04:56,890
are ready to be committed.

90
00:04:56,890 --> 00:04:58,940
So they are being tracked,

91
00:04:58,940 --> 00:05:02,090
and then there's this modified file.

92
00:05:02,090 --> 00:05:04,550
And so in order to now commit all these files

93
00:05:04,550 --> 00:05:09,550
to our Git repository, I need to run git add all again.

94
00:05:11,790 --> 00:05:15,743
So now you see that it is back to just being added.

95
00:05:16,740 --> 00:05:19,370
And also this green bar here is gone.

96
00:05:19,370 --> 00:05:21,180
All right, and so now we're ready

97
00:05:21,180 --> 00:05:24,070
to finally commit these files.

98
00:05:24,070 --> 00:05:26,460
And committing the files basically means

99
00:05:26,460 --> 00:05:28,920
that we really save the modifications

100
00:05:28,920 --> 00:05:32,320
of all the files to the repository.

101
00:05:32,320 --> 00:05:34,530
So adding the files, like this here,

102
00:05:34,530 --> 00:05:38,530
is basically just a pre step before the commit.

103
00:05:38,530 --> 00:05:41,370
So a commit is gonna be like a snapshot

104
00:05:41,370 --> 00:05:44,690
of your code at a certain point in time.

105
00:05:44,690 --> 00:05:46,670
So each time before you make some

106
00:05:46,670 --> 00:05:49,090
significant changes to your codebase,

107
00:05:49,090 --> 00:05:50,720
you should always commit.

108
00:05:50,720 --> 00:05:52,720
And so then, if necessary,

109
00:05:52,720 --> 00:05:55,100
you can go back to past commits,

110
00:05:55,100 --> 00:05:57,830
and delete any modifications that you did

111
00:05:57,830 --> 00:05:59,610
that were maybe wrong.

112
00:05:59,610 --> 00:06:01,860
And we will see how to do that actually later

113
00:06:01,860 --> 00:06:03,410
in this lecture.

114
00:06:03,410 --> 00:06:07,240
But for now, let's commit what we already have here.

115
00:06:07,240 --> 00:06:12,240
So git commit, then dash M, which stands for message.

116
00:06:13,710 --> 00:06:16,120
And then here, we need to specify a string,

117
00:06:16,120 --> 00:06:18,400
which is the commit message.

118
00:06:18,400 --> 00:06:21,060
And so usually, the first commit is always

119
00:06:21,060 --> 00:06:25,910
gonna be called initial commit, like this.

120
00:06:25,910 --> 00:06:28,350
Now, okay, and that's it.

121
00:06:28,350 --> 00:06:30,090
Now, they're all committed.

122
00:06:30,090 --> 00:06:33,240
And you see that all the files,

123
00:06:33,240 --> 00:06:35,053
now look normal here again.

124
00:06:35,920 --> 00:06:39,533
All right, and if we now take a look again, at git status,

125
00:06:41,200 --> 00:06:44,050
then you will see that there is nothing to commit,

126
00:06:44,050 --> 00:06:45,843
and the working tree is clean.

127
00:06:46,850 --> 00:06:48,970
Alright, so in summary,

128
00:06:48,970 --> 00:06:52,500
whenever we initialize a new Git repository,

129
00:06:52,500 --> 00:06:56,220
usually I immediately add all the files,

130
00:06:56,220 --> 00:06:59,700
so I do git in it, then after that,

131
00:06:59,700 --> 00:07:02,490
immediately I run this command.

132
00:07:02,490 --> 00:07:04,750
So Git at all the files.

133
00:07:04,750 --> 00:07:06,670
And then immediately after that,

134
00:07:06,670 --> 00:07:10,563
I commit everything as the initial commit, all right?

135
00:07:12,700 --> 00:07:15,810
Now, let's say that we do some modifications here,

136
00:07:15,810 --> 00:07:17,660
in multiple files.

137
00:07:17,660 --> 00:07:20,143
But we actually introduce some kind of a bug,

138
00:07:21,090 --> 00:07:22,920
not writing any real code,

139
00:07:22,920 --> 00:07:25,543
I will just put a bug here now.

140
00:07:26,420 --> 00:07:28,480
And it turns red, because I have

141
00:07:28,480 --> 00:07:30,913
a special VS code extension for that.

142
00:07:31,820 --> 00:07:34,000
And let's say I also have now some error

143
00:07:36,610 --> 00:07:37,613
here in the model.

144
00:07:38,890 --> 00:07:41,740
Okay, and so this is just to simulate

145
00:07:41,740 --> 00:07:44,860
that we introduced some real bucks.

146
00:07:44,860 --> 00:07:47,980
So if you wanted to go back on all of these files

147
00:07:47,980 --> 00:07:49,690
to the previous commit,

148
00:07:49,690 --> 00:07:54,690
then you could simply write git reset,

149
00:07:54,830 --> 00:07:59,180
then dash dash, hard, and then HEAD,

150
00:07:59,180 --> 00:08:01,300
all in uppercase like this.

151
00:08:01,300 --> 00:08:03,490
And now watch what happens to this file

152
00:08:03,490 --> 00:08:05,193
as this command is executed.

153
00:08:07,400 --> 00:08:09,780
So, you see that it's gone.

154
00:08:09,780 --> 00:08:13,090
And to two files here that previously had the M,

155
00:08:13,090 --> 00:08:16,620
for modified, are also now back to normal.

156
00:08:16,620 --> 00:08:20,850
And debug that we introduced here, is also gone.

157
00:08:20,850 --> 00:08:23,740
All right, and so this is the easiest way

158
00:08:23,740 --> 00:08:28,460
to going back in time, basically, to the previous commit.

159
00:08:28,460 --> 00:08:31,503
But now, let's say that you actually had already committed.

160
00:08:33,150 --> 00:08:35,680
So let's say that here, you now had an alert,

161
00:08:35,680 --> 00:08:38,470
which says, hacked.

162
00:08:38,470 --> 00:08:41,360
And it doesn't really matter what code it is.

163
00:08:41,360 --> 00:08:43,280
But let's say this is another bug

164
00:08:43,280 --> 00:08:45,990
that you introduced for some reason.

165
00:08:45,990 --> 00:08:49,223
But you didn't really notice that it was happening.

166
00:08:50,400 --> 00:08:51,793
So let's say here as well.

167
00:08:53,450 --> 00:08:55,010
All right, so you see now

168
00:08:55,010 --> 00:08:56,903
these two files are modified.

169
00:08:58,750 --> 00:09:02,160
And now you want to commit these changes.

170
00:09:02,160 --> 00:09:04,790
So you think you added a great new feature.

171
00:09:04,790 --> 00:09:07,780
But actually, you just introduced a bug,

172
00:09:07,780 --> 00:09:10,380
which allows users to get hacked.

173
00:09:10,380 --> 00:09:13,640
But anyway, you don't know that yet, let's say.

174
00:09:13,640 --> 00:09:17,370
And so you add all the files to the staging area,

175
00:09:17,370 --> 00:09:20,160
and then you do git commit

176
00:09:21,260 --> 00:09:25,103
with the message of new feature.

177
00:09:27,590 --> 00:09:31,853
Okay, and so now these modified here are gone.

178
00:09:32,750 --> 00:09:35,190
And our code is now committed.

179
00:09:35,190 --> 00:09:37,700
Now, let's say you keep working on the code.

180
00:09:37,700 --> 00:09:41,230
But eventually you notice that you have these bugs here,

181
00:09:41,230 --> 00:09:43,740
which allow users to get hacked.

182
00:09:43,740 --> 00:09:46,200
And so you want to basically now delete

183
00:09:46,200 --> 00:09:49,170
the last commit that you did, right?

184
00:09:49,170 --> 00:09:51,493
So you want to go back to the previous commit.

185
00:09:52,580 --> 00:09:53,440
So to do that,

186
00:09:53,440 --> 00:09:56,960
you need to take a look at that previous commit

187
00:09:56,960 --> 00:10:00,973
and you can do git log for that.

188
00:10:02,160 --> 00:10:04,130
So here you have basically a log

189
00:10:04,130 --> 00:10:06,990
of all the commits that you did.

190
00:10:06,990 --> 00:10:08,660
So this one is the last one.

191
00:10:08,660 --> 00:10:09,853
So the new feature.

192
00:10:12,530 --> 00:10:15,210
And it has basically this ID here.

193
00:10:15,210 --> 00:10:17,990
And so this has currently the head.

194
00:10:17,990 --> 00:10:19,310
And so that's why previously

195
00:10:19,310 --> 00:10:22,960
we could reset using this head keyword.

196
00:10:22,960 --> 00:10:25,380
But now you want to go back to this commit,

197
00:10:25,380 --> 00:10:28,490
so to the initial commit, right?

198
00:10:28,490 --> 00:10:32,700
And so let's copy this ID here, basically.

199
00:10:32,700 --> 00:10:35,960
And it would be enough to take the last seven here,

200
00:10:35,960 --> 00:10:38,790
but I like to simply copy everything.

201
00:10:38,790 --> 00:10:40,740
So select and copy.

202
00:10:40,740 --> 00:10:43,740
And now to get out of this log here,

203
00:10:43,740 --> 00:10:46,853
you need to type a Q, so Q for quit.

204
00:10:47,870 --> 00:10:51,070
Okay, so Ctrl C will not work there,

205
00:10:51,070 --> 00:10:53,700
you have to use key like this.

206
00:10:53,700 --> 00:10:56,993
And sometimes you even need like, colon and Q.

207
00:10:58,140 --> 00:11:02,690
But anyway, let's now do again, git reset,

208
00:11:02,690 --> 00:11:06,173
hard, and then the ID of that commit.

209
00:11:07,400 --> 00:11:08,273
So let's see.

210
00:11:09,180 --> 00:11:12,389
And now that hacked log is gone from here,

211
00:11:12,389 --> 00:11:14,530
and from here as well.

212
00:11:14,530 --> 00:11:18,450
And so we are now back in that initial commit.

213
00:11:18,450 --> 00:11:22,020
And indeed, that's what is set right here.

214
00:11:22,020 --> 00:11:24,703
So the head is now at the initial commit.

215
00:11:25,760 --> 00:11:29,070
However, moving between commits like this

216
00:11:29,070 --> 00:11:30,590
is a little bit dangerous.

217
00:11:30,590 --> 00:11:34,400
And so instead, when we plan on doing a lot of changes,

218
00:11:34,400 --> 00:11:37,313
usually, we simply create a new branch.

219
00:11:38,180 --> 00:11:42,400
So let's write git branch.

220
00:11:42,400 --> 00:11:43,820
And this will simply list

221
00:11:43,820 --> 00:11:46,570
all the branches that we currently have.

222
00:11:46,570 --> 00:11:49,640
And so right now, we only have the master branch.

223
00:11:49,640 --> 00:11:53,030
And the star here means that that's the branch

224
00:11:53,030 --> 00:11:54,950
that we are currently in.

225
00:11:54,950 --> 00:11:57,773
And now again, to close this, you need to write a Q.

226
00:12:00,190 --> 00:12:04,320
Okay, but now let's create a new branch.

227
00:12:04,320 --> 00:12:06,840
And so that new branch is then basically

228
00:12:06,840 --> 00:12:09,980
going to be a copy of the current master branch,

229
00:12:09,980 --> 00:12:13,940
in which we can develop new codes and adding new features,

230
00:12:13,940 --> 00:12:15,790
but without affecting the codes

231
00:12:15,790 --> 00:12:17,770
that is in the master branch.

232
00:12:17,770 --> 00:12:20,170
So it's basically a parallel track

233
00:12:20,170 --> 00:12:22,300
in which we can develop new code,

234
00:12:22,300 --> 00:12:26,000
but without affecting the original code that we had before,

235
00:12:26,000 --> 00:12:28,750
and which we knew was already working.

236
00:12:28,750 --> 00:12:31,420
And so this is a great way of preventing bugs

237
00:12:31,420 --> 00:12:33,830
in our main code base.

238
00:12:33,830 --> 00:12:35,463
So we create a new branch,

239
00:12:36,960 --> 00:12:40,223
by writing again, git branch, but then here,

240
00:12:40,223 --> 00:12:44,400
we can also specify now the name of the branch.

241
00:12:44,400 --> 00:12:47,683
So let's call this one new-feature.

242
00:12:48,850 --> 00:12:51,510
Okay, so we created a new branch,

243
00:12:51,510 --> 00:12:54,890
but we didn't switch to that new branch yet.

244
00:12:54,890 --> 00:12:56,840
So to switch to that branch,

245
00:12:56,840 --> 00:13:01,823
we write git checkout, and then the name of the branch.

246
00:13:05,240 --> 00:13:08,393
And so it says switched to branch new feature.

247
00:13:09,850 --> 00:13:12,460
So let's quickly add some modifications here,

248
00:13:12,460 --> 00:13:14,053
let's add a new function.

249
00:13:17,073 --> 00:13:19,656
Newfeature is simply a function

250
00:13:23,790 --> 00:13:25,520
which logs to the console

251
00:13:26,690 --> 00:13:31,113
Welcome to the application.

252
00:13:33,810 --> 00:13:37,290
Okay, and we also delete this code from here.

253
00:13:37,290 --> 00:13:40,943
And then we want to call that function down here.

254
00:13:41,840 --> 00:13:43,660
So, nothing significant.

255
00:13:43,660 --> 00:13:45,860
This is again, just to simulate.

256
00:13:45,860 --> 00:13:48,770
So this one turned now a green

257
00:13:48,770 --> 00:13:51,770
because we changed something from the original code.

258
00:13:51,770 --> 00:13:55,610
And here it is orange, because we changed something.

259
00:13:55,610 --> 00:13:58,260
And if we were to delete something, for example,

260
00:13:58,260 --> 00:14:03,260
then it should turn red, which right now is not happening.

261
00:14:03,798 --> 00:14:05,560
But anyway, if we click here,

262
00:14:05,560 --> 00:14:08,900
we can see exactly what the code looked like before.

263
00:14:08,900 --> 00:14:10,573
So these two lines of code are gone

264
00:14:10,573 --> 00:14:12,143
and this one is new.

265
00:14:12,990 --> 00:14:15,690
And so this in itself, can be very handy

266
00:14:15,690 --> 00:14:17,783
and a great use case of Git.

267
00:14:19,090 --> 00:14:22,763
But anyway, let's put this very important line here back.

268
00:14:24,040 --> 00:14:29,040
Okay, and so let's now add this change to the staging area.

269
00:14:30,720 --> 00:14:34,240
So Git add all.

270
00:14:34,240 --> 00:14:37,300
So we always have to do this before committing,

271
00:14:37,300 --> 00:14:41,433
and then git commit message,

272
00:14:42,880 --> 00:14:47,213
then edit new welcome feature.

273
00:14:49,481 --> 00:14:52,460
All right, and that's it.

274
00:14:52,460 --> 00:14:54,770
So we just created a new feature,

275
00:14:54,770 --> 00:14:59,770
but this new feature is now in this new feature brand.

276
00:15:00,130 --> 00:15:02,550
So let's check that out again.

277
00:15:02,550 --> 00:15:04,983
So git branch,

278
00:15:06,080 --> 00:15:08,070
and so now we have these two branches.

279
00:15:08,070 --> 00:15:11,960
So master and new feature, and this one is the current one.

280
00:15:11,960 --> 00:15:14,453
Then again, Q to Exodus.

281
00:15:15,670 --> 00:15:20,320
And now once we are done with this new imaginary feature,

282
00:15:20,320 --> 00:15:22,780
let's switch back to the master branch,

283
00:15:22,780 --> 00:15:25,570
so that we can then integrate these changes

284
00:15:25,570 --> 00:15:27,690
into our main code base.

285
00:15:27,690 --> 00:15:30,640
So which again, is in the master branch.

286
00:15:30,640 --> 00:15:35,640
So that is git checkout, and master.

287
00:15:36,220 --> 00:15:38,310
And so now, as I execute this,

288
00:15:38,310 --> 00:15:41,530
you will see this code here going away,

289
00:15:41,530 --> 00:15:44,080
because that is the way the code looked like

290
00:15:44,080 --> 00:15:46,210
in the master branch.

291
00:15:46,210 --> 00:15:48,300
Okay, and so this proves

292
00:15:48,300 --> 00:15:51,920
that there are now really like two different tracks

293
00:15:51,920 --> 00:15:54,550
with different versions of the code.

294
00:15:54,550 --> 00:15:56,647
So in the master branch, we have this code.

295
00:15:56,647 --> 00:16:00,620
And in the other branch, we have that code that we just saw,

296
00:16:00,620 --> 00:16:02,900
and that just disappeared.

297
00:16:02,900 --> 00:16:06,590
But now we can then merge these changes together.

298
00:16:06,590 --> 00:16:08,760
So when we are in the branch

299
00:16:08,760 --> 00:16:12,210
into which we want to add the new code,

300
00:16:12,210 --> 00:16:16,880
we can use Git merge, and then the name of the branch,

301
00:16:16,880 --> 00:16:18,990
which contains the new code

302
00:16:18,990 --> 00:16:21,960
that we want to merge with the current branch.

303
00:16:21,960 --> 00:16:25,370
And so that is the new feature branch.

304
00:16:25,370 --> 00:16:28,373
And so now watch what happens here.

305
00:16:30,928 --> 00:16:35,670
Okay, so you see that this code here was just added.

306
00:16:35,670 --> 00:16:39,170
And down here is also this small summary.

307
00:16:39,170 --> 00:16:42,270
So you see, there were six modifications,

308
00:16:42,270 --> 00:16:45,300
five additions, so five lines were added,

309
00:16:45,300 --> 00:16:46,943
and one line was deleted.

310
00:16:47,870 --> 00:16:50,270
And now just to make sure that our working tree

311
00:16:50,270 --> 00:16:51,830
is still clean,

312
00:16:51,830 --> 00:16:53,980
so that we don't have to commit anything,

313
00:16:53,980 --> 00:16:58,050
let's again watch git status.

314
00:16:58,050 --> 00:17:00,110
And you see there is nothing to commit,

315
00:17:00,110 --> 00:17:02,280
the working tree is clean.

316
00:17:02,280 --> 00:17:04,800
And so the code that we have in this branch,

317
00:17:04,800 --> 00:17:06,200
so in the master branch,

318
00:17:06,200 --> 00:17:09,860
is now the same as in the new feature branch.

319
00:17:09,860 --> 00:17:14,860
Okay, so this is a great feature to basically build code,

320
00:17:15,080 --> 00:17:17,880
but without affecting our original code,

321
00:17:17,880 --> 00:17:22,080
which might break with the changes that we are introducing.

322
00:17:22,080 --> 00:17:25,620
And so usually, we never work in the master branch,

323
00:17:25,620 --> 00:17:28,930
and simply add features in a different new branch.

324
00:17:28,930 --> 00:17:30,600
And then once we're done,

325
00:17:30,600 --> 00:17:33,170
we merge these two branches together.

326
00:17:33,170 --> 00:17:36,960
And then if there is some error, or something not working,

327
00:17:36,960 --> 00:17:40,350
we can always go back to what it was before.

328
00:17:40,350 --> 00:17:43,330
All right, and that's all I had to show you

329
00:17:43,330 --> 00:17:45,873
in this short introduction to Git.

330
00:17:46,900 --> 00:17:49,090
And if you want to learn even more,

331
00:17:49,090 --> 00:17:52,860
or maybe have all of these commands that I just showed you,

332
00:17:52,860 --> 00:17:54,520
in one nice overview,

333
00:17:54,520 --> 00:17:58,240
there's actually a very handy cheat sheet forget,

334
00:17:58,240 --> 00:18:02,093
that was developed by GitHub, which I really like to use.

335
00:18:03,220 --> 00:18:05,527
So let's search for GitHub,

336
00:18:08,380 --> 00:18:11,523
Git Cheat Sheet.

337
00:18:13,470 --> 00:18:16,423
Okay, and this one is probably it.

338
00:18:18,630 --> 00:18:21,180
This one looks a bit different than the one I mean.

339
00:18:23,190 --> 00:18:25,500
Yeah, this is the one that I have.

340
00:18:25,500 --> 00:18:27,920
And actually, when I first found this,

341
00:18:27,920 --> 00:18:31,370
I even printed this out and put it on my desk,

342
00:18:31,370 --> 00:18:34,303
because there's a lot of stuff that we can do.

343
00:18:35,620 --> 00:18:39,660
So here is what I just showed you with the branches, right?

344
00:18:39,660 --> 00:18:43,073
Then here is Git status, Git add, Git init.

345
00:18:45,100 --> 00:18:48,793
And, yeah, also Git reset-hard.

346
00:18:51,090 --> 00:18:54,720
And so you see, there is a lot of stuff that we can do.

347
00:18:54,720 --> 00:18:55,900
And in the next video,

348
00:18:55,900 --> 00:18:59,930
we will then actually use these commands here.

349
00:18:59,930 --> 00:19:03,520
So Git push and Git pull,

350
00:19:03,520 --> 00:19:05,660
so that we can basically copy

351
00:19:05,660 --> 00:19:08,760
our local repository onto a repository

352
00:19:08,760 --> 00:19:11,790
that lives in the cloud on GitHub.

353
00:19:11,790 --> 00:19:15,150
And this will then allow us to basically keep a backup

354
00:19:15,150 --> 00:19:17,820
of our repository online.

355
00:19:17,820 --> 00:19:21,080
And it will also enable us to automatically deploy

356
00:19:21,080 --> 00:19:23,590
or site from this repository

357
00:19:23,590 --> 00:19:26,903
by setting up continuous integration on Netlify.

358
00:19:27,790 --> 00:19:30,070
And so let's learn how to do that.

359
00:19:30,070 --> 00:19:34,003
So how to push our code to GitHub right in the next lecture.

