GIT Interview
GIT Interview
A repository is a file structure where git stores all the project-based files. Git can
either stores the files on the local or the remote repository.
The command creates a copy (or clone) of an existing git repository. Generally, it
is used to get a copy of the remote repository to the local repository.
The git config command is a convenient way to set configuration options for
defining the behavior of the repository, user information and preferences, git
installation-based configurations, and many such things.
For example:
To set up your name and email address before using git commands, we can run
the below commands:
git status command is used for showing the difference between the working
directory and the index which is helpful for understanding git in-depth and also
keep track of the tracked and non-tracked changes.
9. Define “Index”.
Before making commits to the changes done, the developer is given provision
to format and review the files and make innovations to them. All these are done
in the common area which is known as ‘Index’ or ‘Staging Area’.
This command adds files and changes to the index of the existing
directory.
You can add all changes at once using git add . command.
You can add files one by one specifically using git add
<file_name> command.
Git stash can be used in cases where we need to switch in between branches
and at the same time not wanting to lose edits in the current branch. Running
the git stash command basically pushes the current working directory state
and index to the stack for future use and thereby providing a clean working
directory for other tasks.
15. What differentiates between the commands git remote and git
clone?
git remote command creates an entry in git config that specifies a name for
a particular URL. Whereas git clone creates a new git repository by copying an
existing one located at the URL.
git stash apply command is used for bringing the works back to the
working directory from the stack where the changes were stashed
using git stash command.
This helps the developers to resume their work where they had last left
their work before switching to other branches.
18. Can you give differences between “pull request” and “branch”?
20. Can you tell the difference between Git and GitHub?
Git GitHub
This is a distributed version control
This is a cloud-based source
system installed on local machines which
code repository developed
allow developers to keep track of commit
by using git.
histories and supports collaborative work.
This was acquired by
This is maintained by “The Linux Foundation”.
“Microsoft”
GitLab, Atlassian BitBucket, etc
SVN, Mercurial, etc are the competitors
are the competitors.
21. What do the git diff and git status commands do?
git diff works in a similar fashion to git status with the only difference
of showing the differences between commits and also between the
working directory and index.
Can you tell the differences between git revert and git reset?
This command is used for creating a new This command is used for undoing
commit that undoes the changes of the the local changes done in the git
previous commit. repository
Using this command adds a new history to This command operates on the
the project without modifying the existing commit history, git index, and the
history working directory.
This command is used to introduce certain commits from one branch onto
another branch within the repository. The most common use case is when we
want to forward- or back-port commits from the maintenance branch to the
development branch.
There can be cases where we want to revert from the pushed changes and go
back to the previous version. To handle this, there are two possible approaches
based on the situations:
Approach 1: Fix the bad changes of the files and create a new commit
and push to the remote repository. This step is the simplest and most
recommended approach to fix bad changes. You can use the
command: git commit -m "<message>"
Approach 2: New commit can be created that reverts changes done in
the bad commit. It can be done using git revert <name of bad commit>
1) What is GIT?
GIT is a distributed version control system and source code management (SCM)
system with an emphasis to handle small and large projects with speed and
efficiency.
A repository contains a directory named .git, where git keeps all of its metadata
for the repository. The content of the .git directory are private to git.
The command that is used to write a commit message is “git commit –a”. The –a
on the command line instructs git to commit the new content of all tracked files
that have been modified. You can use “git add<file>” before git commit –a if
new files need to be committed for the first time.
a) Git is less preferred for handling extremely large files or frequently changing
binary files while SVN can handle multiple projects stored in the same repository.
b) GIT does not support ‘commits’ across multiple branches or tags. Subversion
allows the creation of folders at any location in the repository layout.
b) High availability
e) Collaboration friendly
GIT is fast, and ‘C’ language makes this possible by reducing the overhead of
runtimes associated with higher languages.
GIT is an open source version control system; it will allow you to run ‘versions’ of
a project, which show the changes that were made to the code overtime also it
allows you keep the backtrack if necessary and undo those changes. Multiple
developers can checkout, and upload changes and each change can then be
attributed to a specific developer.
GIT stash takes the current state of the working directory and index and puts in
on the stack for later and gives you back a clean working directory. So in case if
you are in the middle of something and need to jump over to the other job, and
at the same time you don’t want to lose your current edits then you can use GIT
stash.
When you are done with the stashed item or want to remove it from the list, run
the git ‘stash drop’ command. It will remove the last added stash item by
default, and it can also remove a specific item if you include as an argument.
12) How will you know in GIT if a branch has been already merged into
master?
Git branch—merged lists the branches that have been merged into the current
branch
Git branch—-no merged lists the branches that have not been merged
The git clone command creates a copy of an existing Git repository. To get the
copy of a central repository, ‘cloning’ is the most common way used by
programmers.
The ‘git config’ command is a convenient way to set configuration options for
your Git installation. Behaviour of a repository, user info, preferences etc. can be
defined through this command.
In Git, to create a repository, create a directory for the project if it does not exist,
and then run command “git init”. By running this command .git directory will be
created in the project directory, the directory does not need to be empty.
17) What is ‘head’ in git and how many heads can be created in a
repository?
A ‘head’ is simply a reference to a commit object. In every repository, there is a
default head referred as “Master”. A repository can contain any number of
heads.
The purpose of branching in GIT is that you can create your own branch and
jump between those branches. It will allow you to go to your previous work
keeping your recent work intact.
branch and create another branch to implement new features. This pattern is
particularly useful when there are multiple developers working on a single
project.
20) How can you bring a new feature in the main branch?
To bring a new feature in the main branch, you can use a command “git merge”
or “git pull command”.
A ‘conflict’ arises when the commit that has to be merged has some change in
one place, and the current commit also has a change at the same place. Git will
not be able to predict which change should take precedence.
To resolve the conflict in git, edit the files to fix the conflicting changes and then
add the resolved files by running “git add” after that to commit the repaired
merge, run “git commit”. Git remembers that you are in the middle of a
merger, so it sets the parents of the commit correctly.
Once your development branch is merged into the main branch, you don’t need
26) What is the difference between ‘git remote’ and ‘git clone’?
‘git remote add’ just creates an entry in your git config that specifies a name for
a particular URL. While, ‘git clone’ creates a new git repository by copying and
existing one located at the URI.
With the help of GIT version control, you can track the history of a collection of
files and includes the functionality to revert the collection of files to another
version. Each version captures a snapshot of the file system at a certain point of
time. A collection of files and their complete history are stored in a repository.
28) Mention some of the best graphical GIT client for LINUX?
a) Git Cola
b) Git-g
c) Smart git
d) Giggle
e) Git GUI
f) qGit
‘git diff ’ shows the changes between commits, commit and working tree etc.
As ‘Git Status’ shows you the difference between the working directory and the
index, it is helpful in understanding a git more comprehensively.
32) What is the difference between the ‘git diff ’and ‘git status’?
‘git diff’ is similar to ‘git status’, but it shows the differences between various
commits and also between the working directory and index.
To remove the file from the staging area and also off your disk ‘git rm’ is used.
When you want to continue working where you have left your work, ‘git stash
apply’ command is used to bring back the saved changes onto the working
directory.
‘git add’ adds file changes in your existing directory to your index.
The function of ‘Git Reset’ is to reset your index as well as the working directory
to the state of your last commit.
‘git Is-tree’ represents a tree object including the mode and the name of each
item and the SHA-1 value of the blob or the tree.
‘Git Instaweb’ automatically directs a web browser and runs webserver with an
interface into your local repository.
This directory consists of Shell scripts which are activated after running the
corresponding Git commands. For example, git will try to execute the post-
commit script after you run a commit.
To fix any broken commit, you will use the command “git commit—amend”. By
running this command, you can fix the broken commit message in the editor.
a) The amend operation will destroy the state that was previously saved in a
commit. If it’s just the commit message being changed then that’s not an issue.
But if the contents are being amended then chances of eliminating something
important remains more.
b) Abusing “git commit- amend” can cause a small commit to grow and acquire
unrelated changes.