Our Support: During the COVID-19 outbreak, we request learners to CALL US for Special Discounts!

- DevOps Blogs -

19 Useful Git Commands For Developers to be Revealed

If you are one of those developers who is looking for version control commands to get your development work done, then this article is for you. In this blog, we’ll discuss top 19 commands that are useful for the developer which are a part of everyday development process and help developers to work efficiently. 

To start with, let us first understand a little about SCM (Source Code Management). CTA’s

Source code management is a process where we can keep a track of the changes that are made to source code. SCM works by keeping a track of the changes made to a codebase. It helps in solving conflicts when multiple merges are made by many developers to the same code base repository. We often call it a Version Control System.

Git is one of the tools we use as a Source Code Management (SCM).

Below is a complete list of Git commands we will discuss today:

  1. git config
  2. git init
  3. git clone
  4. git add
  5. git status
  6. git commit
  7. git diff
  8. git reset
  9. git rm
  10. git log
  11. git show
  12. git tag
  13. git branch
  14. git checkout
  15. git merge
  16. git remote
  17. git push
  18. git pull
  19. git stash

SQL Server Curriculum

Git Commands

1. git config

Syntax: git config –global user.name “[name]”

Syntax: git config –global user.email “[email address]”

This command is used to set the developer name and email address. This helps in making the commits back to the git repository.

 Example:

 

DESKTOP-BMEDQ6H MINGW64 ~/Desktop/git (master)

$ git config --global user.name “[ishkapila]”

DESKTOP-BMEDQ6H MINGW64 ~/Desktop/git (master)

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

2. git init

Syntax: git init [repository name]

This command helps in initializing a new repository.

 
DESKTOP-BMEDQ6H MINGW64 ~/Desktop/git (master)

$ git init “git-commands”

Initialized empty Git repository in C:/Users/IKapila/Desktop/git/git-commands/.git/

3. git clone

Syntax: git clone [url]

This command helps to clone an existing repository using the URL of the repository.

 

DESKTOP-BMEDQ6H MINGW64 ~/Desktop/git (master)
$ git clone https://github.com/ishkapila/helloworld.git
Cloning into 'Hello-World'...
remote: Enumerating objects: 13, done.
remote: Total 13 (delta 0), reused 0 (delta 0), pack-reused 13
Unpacking objects: 100% (13/13), done.

4. git add

Syntax: git add [file]

This command helps to add a newly created on an existing file in the staging area. 

 
DESKTOP-BMEDQ6H MINGW64 ~/Desktop/git/git-commands (master)
$ git add a.txt

Syntax: git add *

This command helps to add more than one file in the staging area.

 
 DESKTOP-BMEDQ6H MINGW64 ~/Desktop/git/git-commands (master)
$ git add *

5. git commit

Syntax: git commit -m “[ Enter the commit message here]”

This command helps to permanently add the file in the git version history. -m is used to enter the message where we can mention the changes that went in this commit. This is helpful to find the correct commit in case we need to do a rollback.

 
DESKTOP-BMEDQ6H MINGW64 ~/Desktop/git/git-commands (master)
$ git commit -m "Added file a.txt"
[master (root-commit) e42e94a] Added file a.txt
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 a.txt

Syntax: git commit -a

This command helps to commit the files that we have added using the git add command.

Also, any files that have been modified to this step are committed.

This command opens a file in vi editor mode and asks you to add the commit message.

Once you enter the commit message save the file.

 

DESKTOP-BMEDQ6H MINGW64 ~/Desktop/git/git-commands (master)

$ git commit -a warning: LF will be replaced by CRLF in b.txt. The file will have its original line endings in your working directory [master 473959a] Adding b.txt  1 file changed, 1 insertion(+)

6. git diff

Syntax: git diff

This command helps to show the changes made in the files since the last commit was made. It also tells which file differences are not in staging yet.

DESKTOP-BMEDQ6H MINGW64 ~/Desktop/git/git-commands (master)

 
$ echo "Hello" >> a.txt
DESKTOP-BMEDQ6H MINGW64 ~/Desktop/git/git-commands (master)
$ echo "My name is Ish Kumar Kapila" >> a.txt
DESKTOP-BMEDQ6H MINGW64 ~/Desktop/git/git-commands (master)

$ git diff

Read: What is Jenkins? Jenkins Tutorial Guide to Beginners

warning: LF will be replaced by CRLF in a.txt.

The file will have its original line endings in your working directory

 
diff --git a/a.txt b/a.txt
index e69de29..66c5eaa 100644
--- a/a.txt

+++ b/a.txt

@@ -0,0 +1,2 @@

+Hello

+My name is Ish Kumar Kapila

Syntax: git diff –staged

This command helps to find the changes made in the files after the file was last committed.

Git add must be used and the file should be in a staging area before using this command.

 

DESKTOP-BMEDQ6H MINGW64 ~/Desktop/git/git-commands (master)

$ git add.

warning: LF will be replaced by CRLF in a.txt.

The file will have its original line endings in your working directory

 
DESKTOP-BMEDQ6H MINGW64 ~/Desktop/git/git-commands (master)
$ git diff --staged
diff --git a/a.txt b/a.txt
index e69de29..66c5eaa 100644
--- a/a.txt

+++ b/a.txt
@@ -0,0 +1,2 @@

+Hello
+My name is Ish Kumar Kapila

Syntax: git diff [first branch] [second branch]

This command helps in finding the difference between the 2 branches.

 

[email protected] MINGW64 /c/My docs (branch-2)

$ git diff branch-1  branch-2
diff --git a/branch1.txt b/branch1.txt
index 1193ff4..e69de29 100644
--- a/branch1.txt

+++ b/branch1.txt
@@ -1 +0,0 @@

-branch1
diff --git a/branch2.txt b/branch2.txt
new file mode 100644
index 0000000..c79b95b
--- /dev/null
+++ b/branch2.txt
@@ -0,0 +1,2 @@
+aaaa<
+branch2

7. git reset

Syntax: git reset [file]

This command helps to remove the file from the staging state and preserves its data as well.

 

[email protected] MINGW64 /c/My docs (branch-2)
$ git add a.txt
[email protected] MINGW64 /c/My docs (branch-2)
$ git status

On branch branch-2

Changes to be committed:

 

  (use "git restore --staged <file>..." to unstage)
        new file:   a.txt

Untracked files:
  (use "git add <file>..." to include in what will be committed)

[email protected] MINGW64 /c/My docs (branch-2)
$ git reset a.txt
[email protected] MINGW64 /c/My docs (branch-2)
$ git status
On branch branch-2
Untracked files:
  (use "git add <file>..." to include in what will be committed)
           a.txt

nothing added to commit but untracked files present (use "git add" to track)

Syntax: git reset –soft [commit]

This command helps to roll back all the commits after a specific commit id but preserves the local updated data and changes in the file.

 
[email protected] MINGW64 /c/My docs (branch-2)

$ git log

commit 4007a2c6b9837c0b32fc5e4a7ef7f3c547788be7 (HEAD -> branch-2) Author: Ish Kumar Kapila <[email protected]> Date:   Thu Nov 14 19:42:36 2019 +0530     new commit branch2 commit acf5c89178422256d38fd99cba01da08c069847a Author: Ish Kumar Kapila <[email protected]> Date:   Thu Nov 14 07:16:25 2019 +0530     branch1.txt added [email protected] MINGW64 /c/My docs (branch-2) $ git reset --soft acf5c89178422256d38fd99cba01da08c069847a [email protected] MINGW64 /c/My docs (branch-2) $ git log commit acf5c89178422256d38fd99cba01da08c069847a (HEAD -> branch-2) Author: Ish Kumar Kapila <[email protected]> Date:   Thu Nov 14 07:16:25 2019 +0530     branch1.txt added [email protected] MINGW64 /c/My docs (branch-2) $ ll total 2089 -rw-r--r-- 1 ikapila 1049089       0 Nov 14 19:17 branch1.txt -rw-r--r-- 1 ikapila 1049089      11 Nov 14 19:41 branch2.txt

Syntax: git reset –hard [commit]

This command helps to clean the history and all changes made after this commit id and the head moves to this specific commit id.

 
[email protected] MINGW64 /c/My docs (branch-2)
$ git log
commit 0a43a9bf7bd21b096cd05a4223ff9a16ffa41855 (HEAD -> branch-2)
Author: Ish Kumar Kapila <[email protected]>
Date:   Thu Nov 14 19:43:42 2019 +0530
    nnnnnnnnn
commit acf5c89178422256d38fd99cba01da08c069847a
Author: Ish Kumar Kapila <[email protected]>
Date:   Thu Nov 14 07:16:25 2019 +0530
    branch1.txt added
[email protected] MINGW64 /c/My docs (branch-2)
$ git reset --hard acf5c89178422256d38fd99cba01da08c069847a
HEAD is now at acf5c89 branch1.txt added
[email protected] MINGW64 /c/My docs (branch-2)
$ ll
total 2088

-rw-r--r-- 1 ikapila 1049089       0 Nov 14 19:17 branch1.txt

8. git status

Syntax: git status

This command helps to find all the changes that need to be committed.

 
[email protected] MINGW64 /c/My docs (branch-2)
$ git status

On branch branch-2

Changes to be committed:

 
  (use "git restore --staged <file>..." to unstage)
        new file:   branch2.txt
Untracked files:
  (use "git add <file>..." to include in what will be committed)

9. git rm

 

Syntax: git rm --cached [file]

[email protected] MINGW64 /c/My docs (branch-2)

$ git status

On branch branch-2

Changes to be committed:

 

  (use "git restore --staged <file>..." to unstage)
        new file:   2.txt
[email protected] MINGW64 /c/My docs (branch-2)
$ git rm --cached 2.txt
rm '2.txt'

Syntax: git rm -f [file]

This command is used to delete a file from staging state and from the local file system.

 

[email protected] MINGW64 /c/My docs (branch-2)
$ git status

On branch branch-2

Changes to be committed:

 
  (use "git restore --staged <file>..." to unstage)
        new file:   2.txt

[email protected] MINGW64 /c/My docs (branch-2)

$ git rm -f 2.txt
rm '2.txt'

file 2.txt is removed from local file system.

Read: What is Git? Git Tutorial Guide for Beginners

10. git log

Syntax: git log

This command is helpful to check the history of all the commits in the branch.

 

[email protected] MINGW64 /c/My docs (branch-2)
$ git log
commit f887f0bb2bd63f18fe07d371eb6f1682e9ac7c6d (HEAD -> branch-2)
Author: Ish Kumar Kapila <[email protected]>
Date:   Thu Nov 14 20:39:15 2019 +0530

    a.txt

commit 4398abafcad73c13669b980a41b3c6a4bc338945 Author: Ish Kumar Kapila <[email protected]> Date:   Thu Nov 14 20:38:19 2019 +0530     branch1.txt 222 commit 802e9f01260fc0b0ca6c1f798ce5d60fd8648ab8 Author: Ish Kumar Kapila <[email protected]> Date:   Thu Nov 14 20:37:47 2019 +0530     branch1.txt 111 Syntax: git log –follow[file]

This command is helpful in checking all the versions of a file.

 
[email protected] MINGW64 /c/MyDocs/Janbask/git commands (master)
$ git log --follow a.txt
commit 4802f4685d7f64c60f6521be41e9bebe56103645 (HEAD -> master)
Author: Ish Kumar Kapila <[email protected]>
Date:   Sat Nov 16 05:54:11 2019 +0530

    111

commit 2941520b8a8a487c2814d215cd17909a3b96d5b9
Author: Ish Kumar Kapila <[email protected]>
Date:   Sat Nov 16 05:54:00 2019 +0530
    11
commit 932562c6de3894ae6ae2ce737287fba7eedf908c
Author: Ish Kumar Kapila <[email protected]>
Date:   Sat Nov 16 05:53:45 2019 +0530

    1

11. git show

 

Syntax: git show [commit]

This command helps in checking the details and the changes that were made in a specified commit.

 
[email protected] MINGW64 /c/MyDocs/Janbask/git commands (master)
$ git show 4802f4685d7f64c60f6521be41e9bebe56103645
commit 4802f4685d7f64c60f6521be41e9bebe56103645 (HEAD -> master)
Author: Ish Kumar Kapila <[email protected]>
Date:   Sat Nov 16 05:54:11 2019 +0530
    111
diff --git a/a.txt b/a.txt
index c6dd273..df7d416 100644
--- a/a.txt
+++ b/a.txt
@@ -1,2 +1,3 @@

 hi a
 hi aa
+hi aaa

12. git tag

Syntax: git tag [commitID]

This command helps to create the tag of a commit id.

 
[email protected] MINGW64 /c/MyDocs/Janbask/git commands (master)
$ git tag -a v1.0 4802f4685d7f64c60f6521be41e9bebe56103645 -m "first tag"

Syntax: git tag

This command is helpful to see all the tags in a branch.

 
     

[email protected] MINGW64 /c/MyDocs/Janbask/git commands (master)

$ git tag v1.0

Syntax: git show [tag]

This command is helpful to show all the details of a tag.

 
     

[email protected] MINGW64 /c/MyDocs/Janbask/git commands (master)

$ git show v1.0 tag v1.0 Tagger: Ish Kumar Kapila <[email protected]> Date:   Sat Nov 16 06:03:36 2019 +0530 first tag commit 4802f4685d7f64c60f6521be41e9bebe56103645 (HEAD -> master, tag: v1.0) Author: Ish Kumar Kapila <[email protected]> Date:   Sat Nov 16 05:54:11 2019 +0530     111 diff --git a/a.txt b/a.txt index c6dd273..df7d416 100644 --- a/a.txt +++ b/a.txt @@ -1,2 +1,3 @@  hi a  hi aa +hi aaa

13. git branch

Syntax: git branch

This command lists all the local branches in the current repository.

 
     [email protected] MINGW64 /c/MyDocs/Janbask/git commands (master)
$ git branch
  branch1
* master

Syntax: git branch [branch name]

This command helps create a new branch.

 
     [email protected] MINGW64 /c/MyDocs/Janbask/git commands (master)

$ git branch branch2

Syntax: git branch -d [branch name]

This command helps in deleting a branch locally.

 
[email protected] MINGW64 /c/MyDocs/Janbask/git commands (master)
$ git branch -d branch2
Deleted branch branch2 (was 4802f46)

14. git checkout

 

Syntax: git checkout [branch name]

This command helps switch from one branch to another.

 
[email protected] MINGW64 /c/MyDocs/Janbask/git commands (master)
$ git checkout branch1
Switched to branch 'branch1'
[email protected] MINGW64 /c/MyDocs/Janbask/git commands (branch1)
$

Syntax: git checkout -b [branch name]

This command does 2 jobs, it helps to create the branch and checkout in it at the same time.

 
[email protected] MINGW64 /c/MyDocs/Janbask/git commands (branch1)
$ git checkout -b branch3
Switched to a new branch 'branch3'
[email protected] MINGW64 /c/MyDocs/Janbask/git commands (branch3)
$

15. git merge

Syntax: git merge [branch name]

This command is helpful to merge the changes made in a Branch B (branch1) to Branch A ( current branch/master ).

 
     [email protected] MINGW64 /c/MyDocs/Janbask/git commands (master)
$ git merge branch1
Updating 4802f46..cf9da0e
Fast-forward
 a.txt | 1 +
 1 file changed, 1 insertion(+)

16. git remote

Syntax: git remote add [variable name] [Remote Server Link]

This command is helpful to link the working repository to the remote one.

Read: Periodic Table Of DevOps Tools - A Revolutionary Breakthrough
 
[email protected] MINGW64 /c/MyDocs/Janbask/git commands (master)
$ git remote add origin https://github.com/Ish1984/gitcommands.git

17. git push

Syntax: git push [variable name] master

This command is helpful to upload or update the changes in the current repository to the remote master branch.

 

[email protected] MINGW64 /c/MyDocs/Janbask/2 (master)

$ git push origin master Enumerating objects: 4, done. Counting objects: 100% (4/4), done. Delta compression using up to 4 threads Compressing objects: 100% (2/2), done. Writing objects: 100% (3/3), 282 bytes | 282.00 KiB/s, done. Total 3 (delta 0), reused 0 (delta 0) To https://github.com/Ish1984/gitcommands.git    4acee50..1f2b8f7  master -> master

Syntax: git push [variable name] [branch]

This command is helpful to upload or update the changes in the current repository to the remote specific branch. (branch1)

 

[email protected] MINGW64 /c/MyDocs/Janbask/2 (branch1)

$ git push origin branch1 Enumerating objects: 3, done. Counting objects: 100% (3/3), done. Delta compression using up to 4 threads Compressing objects: 100% (2/2), done. Writing objects: 100% (2/2), 269 bytes | 269.00 KiB/s, done. Total 2 (delta 0), reused 0 (delta 0) remote: remote: Create a pull request for 'branch1' on GitHub by visiting: remote:      https://github.com/Ish1984/gitcommands/pull/new/branch1 remote: To https://github.com/Ish1984/gitcommands.git  * [new branch]      branch1 -> branch1

18. git pull

Syntax:  git pull [Repository Link]

This command helps pull and combine the changes from the remote to the local repository. 

 

[email protected] MINGW64 /c/MyDocs/Janbask/2 (master)

$ git pull https://github.com/Ish1984/gitcommands.git From https://github.com/Ish1984/gitcommands  * branch            HEAD -> FETCH_HEAD

Already up to date.

19. git stash

Syntax: git stash save

This command helps store the modified files temporarily.

 
     [email protected] MINGW64 /c/MyDocs/Janbask/2 (branch1)
$ touch d.txt
[email protected] MINGW64 /c/MyDocs/Janbask/2 (branch1)
$ touch e.txt
[email protected] MINGW64 /c/MyDocs/Janbask/2 (branch1)
$ git add d.txt

warning: LF will be replaced by CRLF in d.txt.

The file will have its original line endings in your working directory

 
[email protected] MINGW64 /c/MyDocs/Janbask/2 (branch1)
$ git add e.txt

warning: LF will be replaced by CRLF in e.txt.

The file will have its original line endings in your working directory

 

[email protected] MINGW64 /c/MyDocs/Janbask/2 (branch1)
$ git stash save

Saved working directory and index state WIP on branch1: 1231e99 b.txt

Here: 1231e99 b.txt are the last commit id and last file committed.

Syntax: git stash pop

This command helps pop up the last stashed content.

 
[email protected] MINGW64 /c/MyDocs/Janbask/2 (branch1)
$ git stash pop

On branch branch1

Changes to be committed:

  (use "git restore --staged <file>..." to unstage)         new file:   d.txt         new file:   e.txt

Syntax: git stash list

This command helps list all the stashed changes.

 
[email protected] MINGW64 /c/MyDocs/Janbask/2 (branch1)
$ git stash list
[email protected]{0}: WIP on branch1: 1231e99 b.txt

Syntax: git stash drop

This command is helpful to drop all the stashed changes.

 

[email protected] MINGW64 /c/MyDocs/Janbask/2 (branch1)

$ git stash drop Dropped refs/[email protected]{0} (6937564de08aa19bbd5538c758a20ce1f9f7c946) [email protected] MINGW64 /c/MyDocs/Janbask/2 (branch1) $ git stash list

SQL Server Quiz

Conclusion

With the above write-up, I have revealed usage of top 19 useful Git commands. If you want to learn more about it regarding how to implement these commands in your DevOps project or you want to learn more commands, then get yourself registered with JanBask Training DevOps training and give your development career a lead with DevOps certification. Happy coding!

Read: Nagios Interview Questions & Answers in Linux for 2020



    Ish Kumar

    A DevOps Engineer by profession and a Technical Blogger by passion. I love to learn anything about DevOps and Cloud computing and at the same time share the knowledge among those who are willing to learn and share the same passion with me.


Comments

Trending Courses

AWS

  • AWS & Fundamentals of Linux
  • Amazon Simple Storage Service
  • Elastic Compute Cloud
  • Databases Overview & Amazon Route 53

Upcoming Class

14 days 12 Jun 2020

DevOps

  • Intro to DevOps
  • GIT and Maven
  • Jenkins & Ansible
  • Docker and Cloud Computing

Upcoming Class

6 days 04 Jun 2020

Data Science

  • Data Science Introduction
  • Hadoop and Spark Overview
  • Python & Intro to R Programming
  • Machine Learning

Upcoming Class

10 days 08 Jun 2020

Hadoop

  • Architecture, HDFS & MapReduce
  • Unix Shell & Apache Pig Installation
  • HIVE Installation & User-Defined Functions
  • SQOOP & Hbase Installation

Upcoming Class

4 days 02 Jun 2020

Salesforce

  • Salesforce Configuration Introduction
  • Security & Automation Process
  • Sales & Service Cloud
  • Apex Programming, SOQL & SOSL

Upcoming Class

1 day 30 May 2020

QA

  • Introduction and Software Testing
  • Software Test Life Cycle
  • Automation Testing and API Testing
  • Selenium framework development using Testing

Upcoming Class

3 days 01 Jun 2020

Business Analyst

  • BA & Stakeholders Overview
  • BPMN, Requirement Elicitation
  • BA Tools & Design Documents
  • Enterprise Analysis, Agile & Scrum

Upcoming Class

5 days 03 Jun 2020

MS SQL Server

  • Introduction & Database Query
  • Programming, Indexes & System Functions
  • SSIS Package Development Procedures
  • SSRS Report Design

Upcoming Class

10 days 08 Jun 2020

Search Posts

Reset

Receive Latest Materials and Offers on DevOps Course

Interviews