- [Cameron] Hi, I'm Cameron McKenzie.
I'm the editor in chief over at theserverside.com.
And I want to tell you the differences
between Git and GitHub.
And so, first of all, what is Git?
So Git is fundamentally a version control tool.
Software developers download Git.
It's executable on Windows.
It's a simple app Git install on a Linux machine.
It's a tool that has a very, very specific purpose
and its purpose is version control.
And I guess along with version control
that it's maintaining a history of commits
and also providing facilities
in which code can be shared with other developers.
So the ability for me to install Git
and then a code developer to install Git,
and then for us to push and pull code
and share it back and forth with one another.
That is the real core purpose of Git.
And if you even look at the different commands
that are associated with Git,
things like commit, push, pull, checkout, revert, reset,
you can see that it is all very, very focused
on managing source code,
managing a source code history and sharing that source code
in a distributed manner with other developers.
One of the big things about Git is it's singularly focused.
So that's what Git does and tasks that fall
on the periphery of source code management
and version control, Git doesn't worry about it.
Which is where all these other vendors come in,
vendors like GitHub.
GitHub is a cloud-based platform built around the Git tool.
But they provide cloud-based repository
and they provide a feature set that is over and above
just what we get with Git.
So it's a cloud-based hosting environment for Git projects,
but it provides all sorts of other features
that if you're using source code management,
you're gonna need.
So what are some of the features that it provides?
So Git itself doesn't concern itself really
with user management, right?
When they're developing, you know what I'm saying,
we're not gonna worry about connecting to LDAP
and authenticating users and making sure
that we securely authenticate someone who checks code in.
But with Git and with GitHub and other vendors
like Bitbucket and GitLab,
there's mechanisms for integrating user management,
even helping to authenticate people
who are doing commits using SSH and GPG keys.
There's the ability to do forking.
There's the ability to do online web-based editing
of files in GitHub.
With GitHub, you can set up branch protection rules.
So you can say, "Hey, nobody can commit to master
except for these people."
Or you can say, "Nobody can delete the blessed branch
unless they're an administrator."
There's even kind of weird things like interaction limits.
So you can actually set up wikis
and you can actually have people comment on code.
And if things get hot,
people get a little bit overzealous with their enthusiasm
for a project and start flaming each other.
You can actually go into GitHub
and minimize the amount of interaction
that maybe people who aren't committers to a project
or people who are relatively new
to a project limit what they can say.
And so that's the basic idea, right?
So Git is the tool.
Git is the fundamental tool that software developers install
on their local machine.
It provides version control semantics.
GitHub is a cloud-based software as a service offering SAS,
offering that allows for Git in the cloud,
but builds a variety of other features
on top of the basic features of Git.
So, as you can see, Git and GitHub are clearly different
both in the feature set they provide
and in their purpose,
but they do compliment each other.
They are not competitors.
They work together and they work with each other.
I'm a big fan of Git.
I'm also a big fan of GitHub as well.
It's a very, very powerful combination.
And there you go.
Please check out the rest of the article
and please check out the rest
of the tutorials we've got over on TheServerSide.