Common Git concepts and questions

Greg Foster
Greg Foster
Graphite software engineer


Note

This guide explains this concept in vanilla Git. For Graphite documentation, see our CLI docs.


Navigate the intricacies of Git with confidence by exploring answers to common Git questions. This documentation provides clarity on frequent queries, offering explanations, best practices, and troubleshooting tips to enhance your Git proficiency.

Git is a distributed version control systemhttps://git-scm.com/doc  used for tracking changes in source code during software development.

Whether you're a beginner or an experienced developer, you're likely to encounter certain questions when working with Git. This guide addresses those questions with clear, concise answers to bolster your version control strategy.

Git is a distributed version control system used for tracking changes in source code during software development.

Unlike centralized version control systems, Git is distributed, allowing each user to have a full copy of the entire repository history.

Branches are parallel versions of a repository, created to work on different features or versions simultaneously without affecting the main codebase.


Terminal
git fetch
git checkout [branch-name]
Terminal
git revert [commit-hash]
# or, if you haven't pushed yet:
git reset --hard HEAD~1Stashing Changes
Terminal
git stash
# Apply the stash later with:
git stash pop
Terminal
git clean -f

Merging creates a new commit, preserving the history, whereas rebasing rewrites history to create a linear sequence of commits.

git fetch downloads the latest changes from the remote without integrating them, while git pull downloads and directly merges the changes.

A detached HEAD occurs when you check out a commit rather than a branch, allowing you to view the state of the code at that commit.

Graphite
Git stacked on GitHub

Stacked pull requests are easier to read, easier to write, and easier to manage.
Teams that stack ship better software, faster.

Or install our CLI.
Product Screenshot 1
Product Screenshot 2