title | shortTitle | intro | versions | type | topics | redirect_from | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
About GitHub and Git |
About GitHub and Git |
You can use {% data variables.product.github %} and Git to collaborate on work. |
|
overview |
|
|
{% data variables.product.github %} is a {% ifversion not ghes %}cloud-based {% endif %}platform where you can store, share, and work together with others to write code.
Storing your code in a "repository" on {% data variables.product.github %} allows you to:
- Showcase or share your work.
- Track and manage changes to your code over time.
- Let others review your code, and make suggestions to improve it.
- Collaborate on a shared project, without worrying that your changes will impact the work of your collaborators before you're ready to integrate them.
Collaborative working, one of {% data variables.product.github %}’s fundamental features, is made possible by the open-source software, Git, upon which {% data variables.product.github %} is built.
Git is a version control system that intelligently tracks changes in files. Git is particularly useful when you and a group of people are all making changes to the same files at the same time.
Typically, to do this in a Git-based workflow, you would:
- Create a branch off from the main copy of files that you (and your collaborators) are working on.
- Make edits to the files independently and safely on your own personal branch.
- Let Git intelligently merge your specific changes back into the main copy of files, so that your changes don't impact other people's updates.
- Let Git keep track of your and other people's changes, so you all stay working on the most up-to-date version of the project.
If you want to learn more about Git, see AUTOTITLE.
When you upload files to {% data variables.product.github %}, you'll store them in a "Git repository." This means that when you make changes (or "commits") to your files in {% data variables.product.github %}, Git will automatically start to track and manage your changes.
There are plenty of Git-related actions that you can complete on {% data variables.product.github %} directly in your browser, such as creating a Git repository, creating branches, and uploading and editing files.
However, most people work on their files locally (on their own computer), then continually sync these local changes—and all the related Git data—with the central "remote" repository on {% data variables.product.github %}. There are plenty of tools that you can use to do this, such as GitHub Desktop.
Once you start to collaborate with others and all need to work on the same repository at the same time, you’ll continually:
- Pull all the latest changes made by your collaborators from the remote repository on {% data variables.product.github %}.
- Push back your own changes to the same remote repository on {% data variables.product.github %}.
Git figures out how to intelligently merge this flow of changes, and {% data variables.product.github %} helps you manage the flow through features such as "pull requests."
If you're new to {% data variables.product.github %}, and unfamiliar with Git, we recommend working through the articles in the AUTOTITLE category. The articles focus on tasks you can complete directly in your browser on {% data variables.product.github %} and will help you to:
- Create an account on {% data variables.product.github %}.
- Learn the "{% data variables.product.github %} Flow", and the key principles of collaborative working (branches, commits, pull requests, merges).
- Personalise your profile to share your interests and skills.
- Explore {% data variables.product.github %} to find inspiration for your own projects and connect with others.
- Learn how to download interesting code for your own use.
- Learn how to upload something you're working on to a {% data variables.product.github %} repository.
{% ifversion fpt or ghec %}
{% endif %}