WEBVTT

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.

