Top 30 Git Interview Questions & Answers You Need To Know in 2020

Git is increasing in popularity. Developers continuously work towards releasing newer versions of the non-beta app to fix bugs or to improve its functionality. Git serves by acting as a version control where all the changes are stored in one central repository.

Every developer in a team can view the versions, make changes, and then upload it. It also works incredibly well for people working in remote teams or working from home. Git is not just used by developers. Even non-developers in the team can use it to get the latest version or a particular version of an app and use it for testing or for other works.

Where Git is a command-line tool, Git Hub is the centre, where programmers save their projects and communicate with a team.

Thus, having the knowledge of Git is in demand, and with the increase in demand, we have formed a set of Git Interview Questions that would help you secure a job. To make it easier to understand, we will divide the GitHub Interview Questions into three sections – Beginners, Intermediate, and Advance.

Basic Level Git Interview Questions

 Q.1) Explain the difference between SVN and Git

  • SVN is a centralized version control tool belonging to the second generation, contrary to Git, which is a decentralized version control tool belonging to the third generation.
  • In SVN, a sever side repository saves the version history. In Git, you can copy the entire repository on your PC.
  • In SVN, you can commit only when you are online, unlike Git where you can commit even when offline.
  • The pull and push operations are slower in SVN compared to Git where it is faster. 
  • In SVN, your work is not shared until you do so, unlike Git, which shares automatically. 

Q.2) What is Git?

Git allows developers and members of a team to keep track of changes made by anyone. It also lets you go back to the older versions. It is a Distributed Version Control system that helps the team know who made the changes and on which date and time. It has its own set of advantages over other Version Control Systems.

The biggest benefit of Git is that it does not depend on a central server to save all the versions of a project. Developers can create clones (copies) of a repository on their own systems, which shows the entire history. This particular helps when there is a sever outage. In Git, there is a central cloud repository where programmers or team members can commit changes and share with their team. 

Q.3) What is the difference between GitHub and Git?

A Git repository hosting service is called a GitHub. Besides, it has its own features like it offers a web-based graphical interface. Further, GitHub also gives access besides serving as a management tool for a project. 

On the other hand, Git is a version control system of distributed nature. It is mainly used to track any changes made in the non-beta app. It offers speed, support, and data integrity. Developers and other team members can see who made what changes and on which date.

 Q.4) What are the advantages of using the Version Control System?

It helps the team and its members because they can work at any time as Version Control System gives them the flexibility to merge the modifications they made in the common version without any hassle. 

The history shows all the older versions and their variants, allowing team members to revert back if needed. The team members also have a snapshot of the entire project. 

Team members need to comment when they make any modifications, which helps others to understand what the exact changes are making the project more organized. No one has to wait for an explanation. The team members exactly know who has changed the version and why.

If there is an unfortunate server outage, a distributed VCS like Git enables you to have the complete history of your project as it can be downloaded on your desktop. 

Q.5) What language is used in Git?

The language Git uses is ‘C’ language because the speed GIT requires can be satisfied by ‘C’ language as it reduces the run times, unlike other high-level languages. 

 Q.6) Tell us some Git repository hosting functions

  • Github
  • Gitlab
  • SourceForge
  • Bitbucket
  • GitEnterprise

Q.7) How do you commit to Git?

To write a commit message, you need to write the command “git commit -a.”

The -a on the command line commands git to commit the latest content of all tracked files that have been changed. You can use the command “git add <file>” before git commit -a if the new files require to be committed for the first time.

Q.8) How can you fix a broken commit?

You can use the command “git commit –amend” to fix a broken commit. By running this command, it fixes the broken commit message in the editor.

Read: Top Nagios Interview Questions

Q.9) What does a repository mean in Git?

It is a place where Git saves all the files. Git has the capability of storing files on both remote as well as the local repository. 

Q.10) How can you create a repository?

Creating a repository is simple in Git. You need to create a directory for the project if not already done. You then need to run the command “git init”. This command creates the git directory in the project directory. 

Q.11) Explain ‘bare repository’ in Git?

A bare Git repository is generally used as a Remote Repository that is you share this with your team members or other people. There is no working tree inside it because there is no work done inside the remote repository. In other files, there are no files inside this, which you will edit. Contrary, a working directory contains a .git subdirectory with all the version history and also a working tree. 

Q.12) What do you mean by a ‘conflict’ in git?

Typically, Git manages all merges by using its automatic merging features. But there could be a conflict if two separate branches got edits in the exact same line of a file. It could also happen when a file is deleted from one branch, but it has been edited in another. These are bound to happen when you are working in a team environment.

Q.13) What is git is-tree?

‘git is-tree’ represents a tree object comprising the mode and the item name as well as the SHA-1 value of the tree or a blob.

Intermediate Level Git Interview Questions

Q. 14) How do you solve a conflict if it arises in Git?

You can resolve conflict in Git in the following ways:

  1. Determine which files have caused the rise of the conflict. 
  2. Solve the conflict by making changes to that particular file. 
  3. Add these files again by the command git add.
  4. Use the command git commit to commit the file. 

Q.15) If a commit is already pushed and made public, how do you revert it back in Git?

There are two methods in which you can do this, depending on the situation: 

  1. You could remove it completely or fix the bad file in a new commit and then push it back to the remote repository. This is the most commonly used method to fix this issue. After making the relevant changes to the file, using the command git commit -m “commit message”, you commit it to the remote repository. 
  2. Alternatively, you can create a new commit that undoes all the modifications that were made in the bad commit. You could do this by using the command git revert <name of bad commit>

Read: Agile Interview Questions & Answers

Q.16) What is SubGit?

It is a tool that allows migration from SVN to Fit. It creates a writable Git mirror of a local or remote Subversion repository and makes use of both Subversion and Git as long as you like. You can use SubGit to create a bi-directional Git-SVN mirror of an existing Subversion repository. You can also quickly do a onetime import from Subversion to Git. 

Q.17) What is the difference between git pull command and git fetch command?

Git pull command retrieves all the new changes or commits from a precise branch from your central repository and updates your destination branch in your local repository.

Git fetch command is used for something similar but has a slight difference. When you fetch, it retrieves all new commits from a precise branch and saves it in a new branch in your local repository. If you wish to reflect these changes in your destination branch, you must call the git merge. 

Thus, Git pull = git fetch + git merge. 

Q.18) What is ‘index’ or ‘staging area’ in Git?

The intermediate area where changes can be formatted or reviewed before committing is called the index or staging area in Git.

Q.19) What is git stash? How do you apply it?

There are times when a piece of work has to be paused as you have to work on some other branch as a priority. The half-done work cannot be committed as it is not in that complete stage, but you do want to come back and work on it in a short time. To resolve this issue, git slash offer help.

It saves it in a stack of unfinished changes which you can complete and commit later. To come back to this piece of work, all you need to do is call the git stash to apply command. It fetches you your work from where you left it to your working directory. 

Q. 20) How is git diff different from ‘git status’?

 ‘git diff’ is almost similar to ‘git status’; the only difference they both have is that the former reveals the differences between various commits. ‘

Q.21) How is ‘git remote’ different from ‘git clone’?

If you wish to create an entry in your git config that mentions a name for a specific URL, you use ‘git remote add’. On the other hand, ‘git clone’ creates a new git repository by copying an existing one located at the URL.

Read: Top React Interview Questions and Answers

Q.22) Describe the branching strategies

Every company has its own branching strategies. Here are some of the popular ones:

  •       Feature branching – A feature branch model saves all of the changes made for a specific feature inside of a branch. Only after thorough testing, this branch is merged with its master. 
  •       Release branching – Once the develop branch has reached a point where it is sort of ready for release; you can clone or copy it to form a release branch. After cloning, no new feature is added to it. You can only fix bugs, document it, or do such activities that are related to its improvement for the release. Once tested, it gets merged with its master and gets a version number. Additionally, it should be merged back into the develop branch, which may have moved ahead since the release was made.
  •       Task branching – In this model, each task is performed on its individual branch with the task key held in the branch name. It is clear to see which code performs which task by looking for the task key in the branch name.

Q.23) Explain the Gitflow workflow?

Gitflow stores the history a particular project by employing two long-running parallel branches which are master and develop:

  • Master – This is ready to go branch. Everything is tested and approved on this branch. 
  • Hotfix – these branches are used to quickly patch production releases. They are almost like your feature branches and release branches; besides, they’re based on master instead of develop.
  • Develop – All the features branches are merged into this branch. These are the one which undergoes testing. Only after rigorous testing, it merges with the master branch.  
  • Feature – each new feature should sit in its own branch, which is then pushed to their parent branch, which is the develop branch.

Q. 24) How does one figure out if a branch is merged to master?

The following commands help you know if they are merged or not:

git branch –merged – It lists all the branches that have been merged into the current branch. You can then see if it is or not. 

git branch –no-merged – Alternatively, you could use this command to check all the branches that are not merged with its master branch. 

Q.25) How can you remove a file from git without deleting it from your file system?

You need to be cautious while adding files to Git to not ending up adding wrong files. The command git rm will remove it from both – staging area and file system, so you need to instead use the git reset command. 

You could use git reset filename or echo filename >> .gitingore 

Q.26) Explain rebasing and merge in Git?

You use the rebase command to integrate edits from one branch into another. It is used as an alternative to the merge command. It is an alternative to the “merge” command. It is different from merge as it rewrites the commit history in order to give a straight, arranged succession of commits.

Advanced level Git Interview Questions:

Q.27) How do you squash the last N commits into a single commit?

There are two ways to squash the last N commits into a single commit which are: 

If you wish to create a new commit message from the beginning, you could use the following command: 

 git reset –soft HEAD~N &&git commit

If you want to simply edit the new commit message with a concatenation of the existing commit messages then you require to fetch those messages and pass them to Git commit by making use of the command: 

git reset –soft HEAD~N &&git commit –edit -m”$(git log –format=%B –reverse .HEAD@{N})”

Q.28) What are the steps to integrate Jenkins with Git?

Step1: You need to click on the Jenkins dashboard to manage the Jenkins button. 

Step 2: Click on the manage plugins button.

Step 3: In the Plugins Page, you need to select the GIT plugin. Click on install without a restart. The plugin is downloaded automatically, depending on the speed of your Internet. 

Q.29) Explain what is Git bisect, and how do you use it to get to the source of a bug? 

Using Git bisect, you can figure out which commit caused bug by using binary search. The command for Git bisect is git bisect <subcommand> <options>

a binary search algorithm, this command finds which commit caused the bug in the first place. Git bisect picks a commit between the two endpoints where the bug was introduced. You need to You can determine between a good commit and a bad one. It continues filtering it down, till the exact commit is found.

Q.30) Explain a git reflog?

The ‘reflog’ command helps to keep track of every single edit that was done to the references of a repository. It keeps a data history of the branches and even keeps a tag to those created locally or outside.

This command must be performed in the repository that had the missing branch. In the case of a remote repository situation, you need to run the reflog command on the programmer’s system who had the branch.

Conclusion

We hope that the Git Hub Interview Questions helps you in getting your dream job. These are the most commonly asked Git questions by the interviewer. We wish you the very best for your interview! 

Prepare for a Career of the Future

INDUSTRY TRUSTED LEARNING - INDUSTRY-RECOGNIZED CERTIFICATION.
Learn More

Leave a comment

Your email address will not be published. Required fields are marked *

×