2017-03-30 16:53:25 -04:00
# Git documentation
2017-03-30 17:15:36 -04:00
Git is a [free and open source ](https://git-scm.com/about/free-and-open-source )
distributed version control system designed to handle everything from small to
very large projects with speed and efficiency.
[GitLab ](https://about.gitlab.com ) is a Git-based fully integrated platform for
2017-04-11 00:33:47 -04:00
software development. Besides Git's functionalities, GitLab has a lot of
2017-03-30 17:15:36 -04:00
powerful [features ](https://about.gitlab.com/features/ ) to enhance your
[workflow ](https://about.gitlab.com/2016/10/25/gitlab-workflow-an-overview/ ).
We've gathered some resources to help you to get the best from Git with GitLab.
2017-03-30 16:53:25 -04:00
## Getting started
2017-03-30 17:20:53 -04:00
- [Git concepts ](../../university/training/user_training.md#git-concepts )
2018-01-10 12:10:38 -05:00
- [How to install Git ](how_to_install_git/index.md )
2017-03-30 17:20:53 -04:00
- [Start using Git on the command line ](../../gitlab-basics/start-using-git.md )
- [Command Line basic commands ](../../gitlab-basics/command-line-commands.md )
2017-03-30 16:53:25 -04:00
- [GitLab Git Cheat Sheet (download) ](https://gitlab.com/gitlab-com/marketing/raw/master/design/print/git-cheatsheet/print-pdf/git-cheatsheet.pdf )
2017-04-26 09:13:11 -04:00
- Commits
- [Revert a commit ](../../user/project/merge_requests/revert_changes.md#reverting-a-commit )
- [Cherry-picking a commit ](../../user/project/merge_requests/cherry_pick_changes.md#cherry-picking-a-commit )
- [Squashing commits ](../../workflow/gitlab_flow.md#squashing-commits-with-rebase )
2018-01-10 12:10:38 -05:00
**Third-party references:**
- [Getting Started - Git website ](https://git-scm.com )
- [Getting Started - Version control ](https://git-scm.com/book/en/v2/Getting-Started-About-Version-Control )
- [Getting Started - Git Basics ](https://git-scm.com/book/en/v2/Getting-Started-Git-Basics )
- [Getting Started - Installing Git ](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git )
- [Git on the Server - GitLab ](https://git-scm.com/book/en/v2/Git-on-the-Server-GitLab )
### Concepts
- Article (2017-05-17): [Why Git is Worth the Learning Curve ](https://about.gitlab.com/2017/05/17/learning-curve-is-the-biggest-challenge-developers-face-with-git/ )
- Article (2016-05-11): [The future of SaaS hosted Git repository pricing ](https://about.gitlab.com/2016/05/11/git-repository-pricing/ )
- GLU Course (Presentation): [About Version Control ](https://docs.google.com/presentation/d/16sX7hUrCZyOFbpvnrAFrg6tVO5_yT98IgdAqOmXwBho/edit?usp=sharing )
## Exploring Git
- [Git Tips & Tricks ](https://about.gitlab.com/2016/12/08/git-tips-and-tricks/ )
- [Eight Tips to help you work better with Git ](https://about.gitlab.com/2015/02/19/8-tips-to-help-you-work-better-with-git/ )
## Troubleshooting Git
2018-01-15 09:15:25 -05:00
- [Numerous _undo_ possibilities in Git ](numerous_undo_possibilities_in_git/index.md )
2018-01-10 12:10:38 -05:00
- Learn a few [Git troubleshooting ](troubleshooting_git.md ) techniques to help you out.
2017-03-30 16:53:25 -04:00
2017-03-30 17:16:20 -04:00
## Branching strategies
2017-03-30 16:53:25 -04:00
2018-01-10 12:10:38 -05:00
- [GitLab Flow ](https://about.gitlab.com/2014/09/29/gitlab-flow/ )
**Third-party references:**
- [Git Branching - Branches in a Nutshell ](https://git-scm.com/book/en/v2/Git-Branching-Branches-in-a-Nutshell )
- [Git Branching - Branching Workflows ](https://git-scm.com/book/en/v2/Git-Branching-Branching-Workflows )
2017-03-30 16:53:25 -04:00
## Advanced use
2017-03-30 17:20:53 -04:00
- [Custom Git Hooks ](../../administration/custom_hooks.md )
- [Git Attributes ](../../user/project/git_attributes.md )
- Git Submodules: [Using Git submodules with GitLab CI ](../../ci/git_submodules.md#using-git-submodules-with-gitlab-ci )
2017-03-30 16:53:25 -04:00
## API
2017-03-30 17:20:53 -04:00
- [Gitignore templates ](../../api/templates/gitignores.md )
2017-03-30 16:53:25 -04:00
## Git LFS
2018-01-10 12:10:38 -05:00
- [Getting Started with Git LFS ](https://about.gitlab.com/2017/01/30/getting-started-with-git-lfs-tutorial/ )
- [GitLab Git LFS documentation ](../../workflow/lfs/manage_large_binaries_with_git_lfs.md )
2017-03-30 17:05:40 -04:00
- [Git-Annex to Git-LFS migration guide ](https://docs.gitlab.com/ee/workflow/lfs/migrate_from_git_annex_to_git_lfs.html )
2018-01-10 12:10:38 -05:00
- Article (2015-08-13): [Towards a production quality open source Git LFS server ](https://about.gitlab.com/2015/08/13/towards-a-production-quality-open-source-git-lfs-server/ )