+91 – 7838219999

contact@nitinfotech.com

HomeTech SolutionsGIT45 Essential GIT Interview Questions and Answers for 2024

45 Essential GIT Interview Questions and Answers for 2024

Friday, October 11, 2024

Table of contents

In the dynamic world of software development, GIT stands out as a crucial tool for version control. Mastery of GIT is essential for developers, making it a common topic in technical interviews. To help you prepare, we have compiled the top 45 GIT interview questions and answers for 2024. These questions cover various aspects of GIT, from basic concepts to advanced techniques.

GIT Interview Questions and Answers:

1. What is GIT?

GIT is a distributed version control system designed to handle everything from small to very large projects with speed and efficiency. It allows multiple developers to work on a project simultaneously without stepping on each other’s toes.

2. Explain the difference between GIT and GitHub.

GIT is a version control system that tracks changes in files, while GitHub is a web-based platform that uses GIT for version control and provides a collaborative environment for developers.

3. What are the main features of GIT?

  • Branching and Merging: GIT supports multiple branches and allows for easy merging.
  • Distributed Development: Each developer has a complete local copy of the repository.
  • Staging Area: Changes can be staged before committing.
  • Speed and Performance: GIT is designed to handle large projects efficiently.

4. What is a GIT repository?

A GIT repository is a directory that contains all the files and their history. It can be local (on your computer) or remote (on a server like GitHub).

5. How do you initialize a GIT repository?

To initialize a GIT repository, use the command:

git init

6. Explain the GIT workflow.

The GIT workflow involves the following steps:

  1. Cloning the repository.
  2. Creating a new branch.
  3. Making changes and committing them.
  4. Pushing the changes to the remote repository.
  5. Creating a pull request for review and merging.

7. What is a commit in GIT?

A commit is a snapshot of the changes in the repository. It records the changes made to the files and directories.

8. How do you create a new branch in GIT?

To create a new branch, use the command:

git branch <branch_name>

9. How do you switch branches in GIT?

To switch branches, use the command:

git checkout <branch_name>

10. What is a merge conflict in GIT and how do you resolve
it?

A merge conflict occurs when changes in two branches conflict with each other. To resolve it:

  1. Identify the conflicting files.
  2. Manually edit the files to resolve the conflicts.
  3. Stage the resolved files.
  4. Commit the changes.

11. What is the difference between git pull and git fetch?

  • git pull fetches changes from the remote repository and merges them into the current branch.
  • git fetch only fetches changes from the remote repository without merging them.

12. Explain the use of git clone.

git clone is used to create a copy of an existing repository. It downloads the entire repository, including its history.

13. What is the purpose of the .gitignore file?

The .gitignore file specifies files and directories that GIT should ignore and not track. This is useful for excluding temporary files, build artifacts, and sensitive information.

14. How do you view the commit history in GIT?

To view the commit history, use the command:

git log

15. Explain the difference between git reset and git revert.

  • git reset undoes changes by moving the branch pointer to a previous commit.
  • git revert creates a new commit that undoes the changes of a previous commit.

16. What is a GIT stash?

GIT stash temporarily saves changes that are not ready to be committed. It allows you to switch branches without committing changes.

17. How do you apply a stash in GIT?

To apply a stash, use the command:

git stash apply

18. What is a GIT tag?

A GIT tag is a reference to a specific commit, usually used to mark release points like versions.

19. How do you create a tag in GIT?

To create a tag, use the command:

git tag <tag_name>

20. Explain the concept of rebasing in GIT.

Rebasing re-applies commits on top of another base tip. It is used to keep a linear project history.

21. What is a fork in GIT?

A fork is a copy of a repository. Forks are often used to propose changes to someone else’s project.

22. How do you sync a forked repository with the original repository?

To sync a forked repository, add the original repository as an upstream remote and fetch and merge changes:

git remote add upstream <original_repo_URL>
git fetch upstream git merge upstream/main

23. What is the difference between git merge and git rebase?

  • git merge combines changes from different branches by creating a merge commit.
  • git rebase re-applies changes on top of another base tip without creating a merge commit.

24. How do you revert a commit in GIT?

To revert a commit, use the command:

git revert <commit_hash>

25. What are GIT hooks?

GIT hooks are scripts that run automatically in response to specific events in the GIT lifecycle, such as commits, merges, and pushes.

26. How do you configure GIT to ignore file mode changes?

To ignore file mode changes, use the command:

git config core.fileMode false

27. Explain the use of git cherry-pick.

git cherry-pick applies changes from a specific commit to the current branch.

28. What is a remote repository in GIT?

A remote repository is a version of your project hosted on the internet or another network.

29. How do you remove a file from GIT without deleting it from the local filesystem?

To remove a file from GIT without deleting it, use the command:

git rm --cached <file_name

30. What is the purpose of git config?

git config is used to set GIT configuration values, such as user name and email, for a repository or globally.

31. git config is used to set GIT configuration values, such as user name and email, for a repository or globally.

GIT LFS (Large File Storage) is used to handle large binary files by storing pointers to the files instead of the files themselves.

32. What is a submodule in GIT?

A submodule is a repository inside another repository. It allows you to keep separate GIT repositories as subdirectories of another repository.

33. How do you update a submodule in GIT?

To update a submodule, use the command:

git submodule update --remote

34. Explain the use of git bisect.Explain the use of git bisect.

git bisect is used to find the commit that introduced a bug by performing a binary search through the commit history.

35. What is a detached HEAD in GIT?

A detached HEAD occurs when HEAD is not pointing to a branch but directly to a commit.

36. How do you reattach a detached HEAD?

To reattach a detached HEAD, switch to a branch:

git checkout <branch_name>

37. What is the purpose of git reflog?

git reflog records updates to the tip of branches and other references. It allows you to recover commits that are not reachable from any branch.

38. How do you clean untracked files in GIT?

To clean untracked files, use the command:

git clean -f

39. What is the difference between git diff and git status?

  • git diff shows the differences between various commits, branches, and files.
  • git status shows the state of the working directory and the staging area.

40. How do you rename a branch in GIT?

To rename a branch, use the command:

git branch -m <new_branch_name>

41. What is git blame used for?

git blame is used to track changes in a file, showing which commit and author modified each line of the file.

42. Explain the concept of git flow.

git flow is a branching model for GIT that defines a strict branching strategy designed around the project release. It involves feature branches, develop branches, and release branches.

43. How do you squash commits in GIT?

To squash commits, use interactive rebase:

git rebase -i <base_commit>

44. What is the purpose of git archive?

git archive creates a zip or tarball archive of the files in a repository.

45. How do you change the author of a commit in GIT?

To change the author of a commit, use the command:

git commit --amend --author="New Author <new_email@example.com>"

Mastering these 45 GIT interview Questions and answers will greatly enhance your preparation and boost your confidence for any GIT-related job interview. Good luck!