The Optimal Cheatsheet for Git
Understanding Git and covering important and commonly used Git commands for easy reference
What is GIT?
GIT is a DVS(Distributed Version Control) which tracks changes in source code during the development of software. It simplifies the process of collaboration on projects and tracks changes in any file. It is a platform that stores code and can be accessed by a set of programmers parallelly during the development phase of a project.
Why we need GIT?
When working on projects in order to avoid conflicts between developers we use a version control system such as Git comes handy.
What is Version Control System?
A simple example of a version control system that we use in our day to day lives is Pendrive & Email. A version control system (VCS) is a program (or set of programs) that tracks changes to a collection of files. One goal is to easily recall earlier versions of individual files or the entire project.
With a version-control system, you can:
- See all the changes
- Retrieve past versions
- Create branches
There are two types of Version Control Systems:
- Distributed Version Control System
- Centralized Version Control System
Git is a Distributed Version Control System. What is a Distributed Version Control System?
In Distributed Version Control System each user clones the central repository to create their own personal repository which includes a complete history of the project.
In DVCS every single developer or client has its own server and they will have a copy of the entire history or version of the code and all of its branches in their local server or machine. Basically, every client or user can work locally and disconnected which is more convenient as compared to centralized source control where there is a single server where all the developers report and make changes and that’s why it is called distributed.
Difference between Git & GitHub
- Git is a version control system while GitHub is a platform for code collaboration!
- Git is software while GitHub is a service
- Git is installed locally on the computer, GitHub is hosted on the Web
- Git provides with command-line tools, GitHub provides a graphical interface
- It can be used with various tools or locally on your computer to help you keep track of changes in your code projects. GitHub uses Git for version control and provides you all sorts of awesome collaboration tools.
THE OPTIMAL GIT CHEATSHEET:
⭐Download Git
⭐SETUP
Configuring user information used across all local repositories
git config — global user.name “[firstname lastname]”
It sets a name that is identifiable for credit when reviewing version history.
git config — global user.email “[valid-email]”
Sets an email address that will be associated with each history marker.
git config — global color.ui auto
Sets automatic command line coloring for Git for easy reviewing.
⭐SETUP & INIT
Configuring user information, initializing and cloning repositories
git init
Initialize an existing directory as a Git repository
git clone [URL]
Retrieve an entire repository from a hosted location via URL
⭐STAGE & SNAPSHOT
Working with snapshots and the Git staging area
git status
Shows modified files in the working directory staged for your next commit.
git add [file]
Add a file as it looks now to your next commit (stage).
git reset [file]
Unstage a file while retaining the changes in the working directory.
git diff
The diff of what is changed but not staged
git diff --staged
The diff between what is staged but not yet committed.
git commit -m “[descriptive message]”
Commit your staged content as a new commit snapshot.
⭐BRANCH & MERGE
Isolating work in branches, changing context, and integrating changes
git branch
List your branches a * will appear next to the currently active branch.
git branch [branch-name]
Create a new branch at the current commit.
git checkout
Switch to another branch and check it out into your working directory.
git merge [branch]
Merge the specified branch’s history into the current one.
git log
Show all commits in the current branch’s history.
⭐INSPECT & COMPARE
Examining logs, diffs, and object information
git log
Show the commit history for the currently active branch.
git log branchB..branchA
Show the commits on branch A that are not on branch B.
git log — follow [file]
Show the commits that changed file, even across renames.
git diff branchB…branchA
Show the diff of what is in branch A that is not in branch B.
git show [SHA]
Show any object in Git in a human-readable format.
⭐TRACKING PATH CHANGES
Versioning file removes and path changes
git rm [file]
Delete the file from the project and stage the removal for commit.
git mv [existing-path] [new-path]
Change an existing file path and stage the move.
git log — stat -M
Show all commit logs with the indication of any paths that moved.
⭐IGNORING PATTERNS
Preventing unintentional staging or committing of files
logs/ .notes pattern*/
Save a file with desired patterns as .gitignore with either direct string matches or wildcard globs.
git config — global core.excludesfile [file]
System-wide ignores patterns for all local repositories.
⭐SHARE & UPDATE
Retrieving updates from another repository and updating local repositories
git remote add [alias] [URL]
Add a git URL as an alias.
git fetch [alias]
Fetch down all the branches from that Git remote.
git merge [alias]/[branch]
Merge a remote branch into your current branch to bring it up to date.
git push [alias] [branch]
Transmit the local branch commits to the remote repository branch.
git pull
Fetch and merge any commits from the tracking remote branch.
⭐REWRITE HISTORY
Rewriting branches, updating commits and clearing history
git rebase [branch]
Apply any commits of a current branch ahead of the specified one.
git reset — hard [commit]
Clear staging area, rewrite working tree from the specified commit.
⭐TEMPORARY COMMITS
Temporarily store modified, tracked files in order to change branches
git stash
Save modified and staged changes.
git stash list
List stack-order of stashed file changes.
git stash pop
Write working from the top of the stash stack.
git stash drop
Discard the changes from the top of the stash stack.
Git is for everyone. It is a great way to manage your files, it is a powerful tool. It has become an essential tool in the industry and it may seem enigmatic at first but within a few hours, you will be able to master this great tool.
You can also refer to my other article where I have a covered the basic essential commands on Git
Git: A Complete Guide
Git: A Complete Guide
Comments