2019-06-06 02:56:58 -04:00
---
2020-07-29 08:09:45 -04:00
stage: Create
group: Source Code
2020-11-26 01:09:20 -05:00
info: "To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments"
2019-06-06 02:56:58 -04:00
type: index
---
2021-02-09 13:09:59 -05:00
# Git **(FREE)**
2017-03-30 16:53:25 -04:00
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
2019-06-06 02:56:58 -04:00
large projects with speed and efficiency.
2017-03-30 17:15:36 -04:00
[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
2021-07-02 14:08:28 -04:00
[workflow ](https://about.gitlab.com/topics/version-control/what-is-gitlab-flow/ ).
2017-03-30 17:15:36 -04:00
We've gathered some resources to help you to get the best from Git with GitLab.
2019-06-06 02:56:58 -04:00
More information is also available on the [Git website ](https://git-scm.com ).
2017-03-30 16:53:25 -04:00
## Getting started
2021-03-08 13:09:12 -05:00
The following resources can help you get started with Git:
2019-06-06 02:56:58 -04:00
2019-06-10 09:00:34 -04:00
- [Git-ing started with Git ](https://www.youtube.com/watch?v=Ce5nz5n41z4 ),
a video introduction to Git.
2022-03-28 08:07:26 -04:00
- [Make your first Git commit ](../../tutorials/make_your_first_git_commit.md )
2019-06-06 02:56:58 -04:00
- [Git Basics ](https://git-scm.com/book/en/v2/Getting-Started-Git-Basics )
- [Git on the Server - GitLab ](https://git-scm.com/book/en/v2/Git-on-the-Server-GitLab )
2018-01-10 12:10:38 -05:00
- [How to install Git ](how_to_install_git/index.md )
2022-03-28 08:07:26 -04:00
- [Git terminology ](terminology.md )
2017-03-30 17:20:53 -04:00
- [Start using Git on the command line ](../../gitlab-basics/start-using-git.md )
2020-06-30 14:09:13 -04:00
- [Edit files through the command line ](../../gitlab-basics/command-line-commands.md )
2018-06-14 20:56:01 -04:00
- [GitLab Git Cheat Sheet (download) ](https://about.gitlab.com/images/press/git-cheat-sheet.pdf )
2019-06-06 02:56:58 -04:00
- Commits:
2021-09-01 02:09:00 -04:00
- [Revert a commit ](../../user/project/merge_requests/revert_changes.md#revert-a-commit )
- [Cherry-picking a commit ](../../user/project/merge_requests/cherry_pick_changes.md#cherry-pick-a-commit )
2019-10-27 02:06:30 -04:00
- [Squashing commits ](../gitlab_flow.md#squashing-commits-with-rebase )
2020-04-30 08:09:45 -04:00
- [Squash-and-merge ](../../user/project/merge_requests/squash_and_merge.md )
- [Signing commits ](../../user/project/repository/gpg_signed_commits/index.md )
2021-05-13 11:10:20 -04:00
- [Git stash ](stash.md )
2020-04-30 08:09:45 -04:00
- [Git file blame ](../../user/project/repository/git_blame.md )
- [Git file history ](../../user/project/repository/git_history.md )
2021-02-17 19:09:31 -05:00
- [Git tags ](tags.md )
2018-01-10 12:10:38 -05:00
2019-06-06 02:56:58 -04:00
### Concepts
2018-01-10 12:10:38 -05:00
2020-04-29 14:09:56 -04:00
The following are resources on version control concepts:
2018-01-10 12:10:38 -05:00
2019-10-16 11:06:17 -04:00
- [Why Git is Worth the Learning Curve ](https://about.gitlab.com/blog/2017/05/17/learning-curve-is-the-biggest-challenge-developers-face-with-git/ )
- [The future of SaaS hosted Git repository pricing ](https://about.gitlab.com/blog/2016/05/11/git-repository-pricing/ )
2020-04-29 14:09:56 -04:00
- [Git website on version control ](https://git-scm.com/book/en/v2/Getting-Started-About-Version-Control )
2019-06-06 02:56:58 -04:00
- [GitLab University presentation about Version Control ](https://docs.google.com/presentation/d/16sX7hUrCZyOFbpvnrAFrg6tVO5_yT98IgdAqOmXwBho/edit?usp=sharing )
2018-01-10 12:10:38 -05:00
2021-05-13 14:10:32 -04:00
### Work with Git on the command line
You can do many Git tasks from the command line:
- [Bisect ](bisect.md ).
2021-09-07 23:09:25 -04:00
- [Cherry-pick ](cherry_picking.md ).
2021-05-13 14:10:32 -04:00
- [Feature branching ](feature_branching.md ).
- [Getting started with Git ](getting_started.md ).
- [Git add ](git_add.md ).
- [Git log ](git_log.md ).
- [Git stash ](stash.md ).
- [Merge conflicts ](merge_conflicts.md ).
- [Rollback commits ](rollback_commits.md ).
- [Subtree ](subtree.md ).
- [Unstage ](unstage.md ).
2019-06-06 02:56:58 -04:00
## Git tips
2018-01-10 12:10:38 -05:00
2019-06-06 02:56:58 -04:00
The following resources may help you become more efficient at using Git:
2018-01-10 12:10:38 -05:00
2019-08-04 23:43:35 -04:00
- [Useful Git commands ](useful_git_commands.md ) collected by the GitLab support team.
2019-10-16 11:06:17 -04:00
- [Git Tips & Tricks ](https://about.gitlab.com/blog/2016/12/08/git-tips-and-tricks/ )
- [Eight Tips to help you work better with Git ](https://about.gitlab.com/blog/2015/02/19/8-tips-to-help-you-work-better-with-git/ )
2018-01-10 12:10:38 -05:00
## Troubleshooting Git
2019-06-06 02:56:58 -04:00
If you have problems with Git, the following may help:
2018-01-15 09:15:25 -05:00
- [Numerous _undo_ possibilities in Git ](numerous_undo_possibilities_in_git/index.md )
2019-06-06 02:56:58 -04:00
- Learn a few [Git troubleshooting ](troubleshooting_git.md ) techniques
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
2020-04-30 08:09:45 -04:00
- [Feature branch workflow ](../../gitlab-basics/feature_branch_workflow.md )
2020-06-10 14:09:15 -04:00
- [Develop on a feature branch ](feature_branch_development.md )
2020-04-30 08:09:45 -04:00
- [GitLab Flow ](../gitlab_flow.md )
2018-01-10 12:10:38 -05:00
- [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
2019-06-06 02:56:58 -04:00
The following are advanced topics for those who want to get the most out of Git:
2020-10-13 08:08:41 -04:00
- [Introduction to Git rebase, force-push, and merge conflicts ](git_rebase.md )
2020-01-20 13:08:44 -05:00
- [Server Hooks ](../../administration/server_hooks.md )
2017-03-30 17:20:53 -04:00
- [Git Attributes ](../../user/project/git_attributes.md )
2021-03-01 07:11:29 -05:00
- Git Submodules: [Using Git submodules with GitLab CI ](../../ci/git_submodules.md )
2019-08-05 07:41:31 -04:00
- [Partial Clone ](partial_clone.md )
2017-03-30 16:53:25 -04:00
## API
2019-06-06 02:56:58 -04:00
[Gitignore templates ](../../api/templates/gitignores.md ) API allow for
Git-related queries from GitLab.
2017-03-30 16:53:25 -04:00
2020-04-29 14:09:56 -04:00
## Git Large File Storage (LFS)
2017-03-30 16:53:25 -04:00
2019-06-06 02:56:58 -04:00
The following relate to Git Large File Storage:
2019-10-16 11:06:17 -04:00
- [Getting Started with Git LFS ](https://about.gitlab.com/blog/2017/01/30/getting-started-with-git-lfs-tutorial/ )
2020-06-11 23:08:22 -04:00
- [Migrate an existing Git repository with Git LFS ](lfs/migrate_to_git_lfs.md )
2020-04-01 14:07:56 -04:00
- [Removing objects from LFS ](lfs/index.md#removing-objects-from-lfs )
- [GitLab Git LFS user documentation ](lfs/index.md )
2021-05-13 14:10:32 -04:00
- [GitLab Git LFS administrator documentation ](../../administration/lfs/index.md )
2019-10-16 11:06:17 -04:00
- [Towards a production quality open source Git LFS server ](https://about.gitlab.com/blog/2015/08/13/towards-a-production-quality-open-source-git-lfs-server/ )