Let's get started with the question,
what version management
or version control actually is.
And if we think about this course so far,
you saw that we worked on several web dev projects.
And because of that,
we also worked on well different code basis
So to say,
and our code evolved.
So basically we could say that we started
with the initial code.
So the first code we saved in an individual project,
and then somehow,
well,
we arrived at the latest code version at the final code,
whatever you might want to call it,
let's call it the code we had
at the end of a specific module.
Now,
as you also saw to arrive at this latest code version,
different well code iterations were necessary.
Different stages of that code were required.
In this course,
You can also find different code snapshots of different
stages of these individual projects
to make sure you can download these.
And we'll jump back on board in case
we lost you throughout the
module with our code in case you had a bug
and so on.
Now,
the thing is that we are not
well kind of creating these
different code snapshots by saving the code,
creating a new folder,
and then copy pasting this version into this folder
and calling this folder,
whatever stage 1, 2, 3, 4,
or anything like this,
we are actually always working in the same folder
Still,
We are able to track our code
to track the code progress that we make.
And to also share the snapshots with you,
how are we doing this?
Well,
the answer is we do this
with version management
or version control
because this concept is all about efficient control
and tracking of code changes over time.
You'll see that changes here has this little asterisk added.
This is simply due to the fact that
although we have a web dev course here,
the version management tools we'll learn about in the next
lectures cannot only be used for web dev.
You can also use these tools to manage your data analysis,
your data science projects,
or even to manage your Excel files,
for example.
So that's just a side note.
This is a web dev course.
Therefore we want to track our code changes over time.
So this is the idea behind version control.
It's the idea to easily save different stages of your code
without having to create side copies
or without losing any prior progress.
Now by default,
Well,
this is hardly possible.
Therefore, we need specific tools
which help us to efficiently manage our code.
And well guess what,
these two tools are Git
and Git hub,
but what are Git?
This is the Git logo
and top that's the GitHub logo.
What are these tools in detail now?
Well get is actually a local tool,
a free local tool,
which you can download
and install on your computer
on your windows or Mac machine.
Doesn't make a difference.
And this tool then,
once installed
well, helps you to control
the different versions that you have in
your code for your web development projects
and Git does this
by a so-called repositories.
This means a project managed by a Git
automatically has such a repository
we'll of course explore how we can create such
a repository and how these repositories work.
But generally that's Git in a nutshell,
a local tool,
which manages different versions
of your web dev projects in
so-called repositories.
That's it.
Git is a local tool as a set though.
So it's great
If you're working alone on your projects,
at least in a first step,
we also have get have GitHub though.
GitHub, although,
sharing partially,
at least the name is a separate tool,
not related to Git in general.
And GitHub is a cloud hosting
provider for Git repositories.
You see,
there seems to be kind of a connection.
So, whilst Git is a local tool,
GitHub brings the projects
we manage with Git to the cloud.
So therefore,
in addition to the fact that in case our computer gets
stolen or crashes,
we won't lose our code.
GitHub is also perfect to collaborate in
or contribute to web development projects.
This means we can store our project on GitHub
and then add other people to also work on our code
or other people can also share their work
and we can collaborate.
This means, for example,
adding features or fixing bugs
in these projects,
also something we'll explore for all this module.
The important thing is that GitHub is the world's largest
development platform.
Bringing Git's local repositories to the cloud.
And that's exactly where these two tools
are connected in the end.
With Git being a great local tool to manage projects
and GitHub being a great tool
to hosting these projects in the cloud.
Well, these two are the perfect combination
and must know combination if you want to
become a web developer,
which you actually are already,
and or if you want to work as a web developer
for a company.
So this is the core idea behind these two tools,
still a bit abstract,
obviously,
but these are only the first steps.
Of course,
we'll have a close look at these tools very soon
before we do that, though,
we have to have a look at another concept
related to using these two tools.