StackTips

Git Commands Cheat Sheet

nilan avtar

Written by

Nilanchala,  16 min read,  3.13K views, updated on Sept. 17, 2023

A list of some commonly used Git commands to get you going with Git.

1. Configuring Git

To tell Git who you are, run the following two commands:

$ git config --global user.name "King Kong"
$ git config --global user.email "[email protected]"

Pretty colours for the git outputs in terminal:

$ git config --global color.ui true

Get the list of configurations:

$ git config --list

2. Checkout Remote Project

Create a local copy of a remote repository
git clone ssh://[email protected]/[username]/[repository-name].git

3. Adding Local Project to Git

Initialize the local directory as a Git repository.

$ git init

Add the files to your new local repository. This stages them for the first commit.

$ git add .

Or, alternatively, you can add one by one file

$ git add file1.txt file2.txt

To unstage a file:

$ git reset HEAD file1.txt 

Commit the files that you’ve staged in your local repository

$ git commit -m "Initial commit"

In Terminal, add the URL for the remote repository where your local repository will be pushed. Sets the new remote

$ git remote add origin [REMOTE REPO URL]

Verifies the new remote URL

$ git remote -v

Push the changes in your local repository to GitHub.

$ git push -u origin master

4. Git Difference

To view file diff in git before commit:

$ git diff 

When you want to do a git diff but do not care about the full diff and just want to know which files changed

$ git diff --name-only

To include some brief information about changed lines

$ git diff --stat

The output of –stat is nicely coloured. If you want a more machine-readable output

$ git diff --numstat

5. Read Previous Git Commit

Show full log of the last commit:

$ git show

Show log of last commit (summary only):

git log -1

If you need just the commit message and nothing else.
More elegantly – if you want a quick overview of your commits

$ git log -1 --pretty=%B

Show log of last N commit:

$ git log --oneline -5

6. Working with Git Branches

View list local branches

$ git branch

View list of all

$ git branch -a

View list of remote branches

$ git branch -r

7. Sharing & Updating Projects

Push a branch to your remote repository

$ git push origin <branch_name>

Push changes to the remote repository (and remember the branch)

$ git push -u origin <branch_name>

Push changes to the remote repository (remembered branch)

$ git push  

Delete a remote branch

$ git push origin --delete <branch_name>

Update local repository to the newest commit

$ git pull

Pull changes from the remote repository

$ git pull origin <branch_name>

8. Create and Manage Branches

If you’re a developer you probably have used it and are familiar with git workflow. Whenever you want to commit a bug or a new feature, you need to create a branch for it, which will be a copy of your master branch. Once your fixes are ready to merge, you typically create a pull request on your new branch. The reason for this is to keep your master branch clean all the time.

Here is the list of some useful commands to help you create and manage a new branch. Please note, before creating a new branch, pull the changes from upstream. Your master needs to be up to date.
Create a git branch.

$ git branch <new branch name>

Switch to a branch

$ git checkout <branch name>

Create the branch on your local machine and switch in this branch:

$ git checkout -b <new branch name>

Change the working branch:

$ git checkout <new branch name>

Push the branch to remote git:

$ git push origin <new branch name>

When you want to commit something in your branch, be sure to be in your branch. Add -u parameter to set upstream.

You can see all the branches created by using :

$ git branch

Add a new remote for your branch:

$ git remote add <remote branch name> 

Push changes from your commit into your branch :

$ git push <new branch remote name>  <new branch name>

Update your branch when the original branch from the official repository has been updated:

$ git fetch <remote branch name>

Then you need to apply to merge changes if your branch is derivated from develop you need to do:

$ git merge <name of remote branch>/develop

9. Delete Branch

Delete local branch: -d option stands for –delete

git branch -d <branch_name>

Git local branch force: -D option stands for –delete –force

git branch -D <branch_name>

Delete a remote GIT branch

git push origin --delete <branch_name>

10. Git Stashing

If you run git status, you can see your dirty state:

$ git status

Now you want to switch branches, but you don’t want to commit what you’ve been working on yet; so you’ll stash the changes. To push a new stash onto your stack, run git stash or git stash save:

$ git stash

$ git stash save "Stash message"

At this point, you can switch branches and do work elsewhere; your changes are stored on your stack. To see which stashes you’ve stored, you can use git stash list:

$ git stash list

Outputs:
stash@{0}: WIP on master: 049d078 added the index file
stash@{1}: WIP on master: c264051 Revert "added file_size"
stash@{2}: WIP on master: 21d80a5 added number to log

In this case, two stashes were done previously, so you have access to three different stashed works. You can reapply the one you just stashed by using the command shown in the help output of the original stash command: git stash apply.

If you want to apply one of the older stashes, you can specify it by naming it, like this: git stash apply stash@{2}. If you don’t specify a stash, Git assumes the most recent stash and tries to apply it:

$ git stash apply

$ git stash apply stash@{1}

Delete a particular stash.

$ git stash drop

$ git stash drop stash@{0}
nilan avtar

Nilanchala

I'm a blogger, educator and a full stack developer. Mainly focused on Java, Spring and Micro-service architecture. I love to learn, code, make and break things.

Related posts

Let’s be friends!

🙌 Stay connected with us on social media for the latest updates, exclusive content, and more. Follow us now and be part of the conversation!