The Ultimate Guide to Git Commands

The Ultimate Guide to Git Commands

Git is an Open Source Distributed Version Control System. There are many version control systems out there like: CVS, SVN, Mercurial, Fossil. It is by far, the most widely used modern version control system in the world today. Git is a mature, actively maintained open source project originally developed in 2005 by Linus Torvalds, the famous creator of the Linux operating system kernel. You can read more about it here :- What is Git

Git serves as the foundation for many services, like GitHub and GitLab, but you can use Git without using any other service. This means that you can use Git privately or publicly.

Git is, first and foremost, a version control system (VCS).

Here's a list of most used git commands.

  • git init - This command is used to start a new repository.
git init [repository name]
  • git status - This command lists all the files that have to be committed.
git status
  • git config - This command sets the author name and email address respectively to be used with your commits.
git config –global user.name "[name]"
git config –global user.email "[email address]"
  • git clone - This command is used to obtain a repository from an existing URL.
git clone [url]
  • git add - This command adds a file to the staging area.
git add [file]
  • git add * - This command adds one or more to the staging area.
git add *
  • git commit - This command records or snapshots the file permanently in the version history.
git commit -m “[ Type in the commit message]”
  • git commit -a - This command commits any files you’ve added with the git add command and also commits any files you’ve changed since then.
git commit -a
  • git diff - This command shows the file differences which are not yet staged.
git diff
  • git diff –staged - This command shows the differences between the files in the staging area and the latest version present.
git diff –staged
  • git diff [first branch] [second branch] - This command shows the differences between the two branches mentioned.
git diff [first branch] [second branch]
  • git reset [file] - This command unstages the file, but it preserves the file contents.
git reset [file]
  • git reset [commit] - This command undoes all the commits after the specified commit and preserves the changes locally.
git reset [commit]
  • git reset –hard [commit] - This command discards all history and goes back to the specified commit.
git reset –hard [commit]
  • git rm - This command deletes the file from your working directory and stages the deletion.
git rm [file]
  • git log - This command is used to list the version history for the current branch.
git log
  • git log –follow[file] - This command lists version history for a file, including the renaming of files also.
git log –follow[file]
  • git show - This command shows the metadata and content changes of the specified commit.
git show [commit]
  • git tag - This command is used to give tags to the specified commit.
git tag [commitID]
  • git branch - This command lists all the local branches in the current repository.
git branch
  • git branch [branch name] - This command creates a new branch.
git branch [branch name]
  • git branch -d [branch name] - This command deletes the feature branch.
git branch -d [branch name]
  • git checkout - This command is used to switch from one branch to another.
git checkout [branch name]
  • git checkout -b - This command creates a new branch and also switches to it.
git checkout -b [branch name]
  • git merge - This command merges the specified branch’s history into the current branch.
git merge [branch name]
  • git remote - This command is used to connect your local repository to the remote server.
git remote add [variable name] [Remote Server Link]
  • git push - This command sends the committed changes of master branch to your remote repository.
git push [variable name] master
  • git push [variable name] [branch] - This command sends the branch commits to your remote repository.
git push [variable name] [branch]
  • git push –all [variable name] -This command pushes all branches to your remote repository.
git push –all [variable name]
  • git push [variable name] :[branch name] - This command deletes a branch on your remote repository.
git push [variable name] :[branch name]
  • git stash - This command temporarily stores all the modified tracked files.
git stash save
  • git stash pop - This command restores the most recently stashed files.
git stash pop
  • git stash list - This command lists all stashed changesets.
git stash list
  • git stash drop - This command discards the most recently stashed changeset.
git stash drop
  • git pull [Repository Link] - This command fetches and merges changes on the remote server to your working directory.
git pull [Repository Link]

You can bookmark this article for reference. I plan on updating this article in long run. So, that it serves as a quick reference for many.