# Using Git

Use Git to manage your GitHub repositories from your computer.

## Links

* [About Git](/en/enterprise-server@3.19/get-started/using-git/about-git)

  Learn about the version control system, Git, and how it works with GitHub.

* [Pushing commits to a remote repository](/en/enterprise-server@3.19/get-started/using-git/pushing-commits-to-a-remote-repository)

  Use git push to push commits made on your local branch to a remote repository.

* [Getting changes from a remote repository](/en/enterprise-server@3.19/get-started/using-git/getting-changes-from-a-remote-repository)

  You can use common Git commands to access remote repositories.

* [Dealing with non-fast-forward errors](/en/enterprise-server@3.19/get-started/using-git/dealing-with-non-fast-forward-errors)

  Sometimes, Git can't make your change to a remote repository without losing commits. When this happens, your push is refused.

* [Splitting a subfolder out into a new repository](/en/enterprise-server@3.19/get-started/using-git/splitting-a-subfolder-out-into-a-new-repository)

  You can turn a folder within a Git repository into a brand new repository.

* [About Git subtree merges](/en/enterprise-server@3.19/get-started/using-git/about-git-subtree-merges)

  If you need to manage multiple projects within a single repository, you can use a subtree merge to handle all the references.

* [About Git rebase](/en/enterprise-server@3.19/get-started/using-git/about-git-rebase)

  The git rebase command allows you to easily change a series of commits, modifying the history of your repository. You can reorder, edit, or squash commits together.

* [Using Git rebase on the command line](/en/enterprise-server@3.19/get-started/using-git/using-git-rebase-on-the-command-line)

  Here's a short tutorial on using git rebase on the command line.

* [Resolving merge conflicts after a Git rebase](/en/enterprise-server@3.19/get-started/using-git/resolving-merge-conflicts-after-a-git-rebase)

  When you perform a git rebase operation, you're typically moving commits around. Because of this, you might get into a situation where a merge conflict is introduced. That means that two of your commits modified the same line in the same file, and Git doesn't know which change to apply.

* [Dealing with special characters in branch and tag names](/en/enterprise-server@3.19/get-started/using-git/dealing-with-special-characters-in-branch-and-tag-names)

  Git is very permissive about what characters are allowed in branch and tag names. When using Git from a command-line shell, you may need to escape or quote special characters.

* [/troubleshooting-the-2-gb-push-limit](/en/enterprise-server@3.19/troubleshooting-the-2-gb-push-limit)