Git is a distributed version control system used to track changes in source code during software development. It allows many developers to work collaboratively on a project with a robust system of branches and merges that helps manage changes without overwriting each other’s work. In tech interviews, questions about Git aim to assess a candidate’s understanding of source code management techniques, the ability to track and revert changes, and efficient collaboration in a team-based software development environment.
Git Fundamentals
- 1.
What is Git and why is it used?
Answer:Git is a decentralized version control system (DVCS) that developers primarily use to manage source code across diverse development projects. It ensures better code quality, facilitates teamwork, and provides a robust backup mechanism.
Benefits of Using Git
-
History and Time Travel: Git preserves every version of a project, making it possible to roll back changes or inspect code at any point.
-
Security and Integrity: Each file in Git has a unique SHA-1 hash, which means unauthorized changes are easily detected.
-
Collaboration: Git allows multiple developers to work on a project simultaneously without conflict.
-
Code Reviews: Git simplifies the process of reviewing code before it’s incorporated into the main codebase.
Key Concepts
Commit
A commit represents a saved state of your project. It is a snapshot of all the files in your project at a given point in time. Each commit has a commit message associated with it.
Branch
A branch is an independent line of development. It allows you to work on a feature or bug fix, isolate it from the rest of the codebase until it is ready, and then merge it back in.
Master is a default branch present in all Git repositories. You can create many other branches.
Merge
Merging in Git means taking the independent developments of two branches and combining them into a single branch.
After merging, the two branches from which you were merging are the same as the merged branch.
Remote and Origin
A remote is a common repository on a server or accessible memory that all team members use to exchange their changes.
An origin is a source of commit objects (store of all committed versions).
The Command Line vs Visual Tools
For everyday tasks, both CLI and GUI are powerful, but it’s essential to understand Git’s underlying mechanics so that you can troubleshoot and manage complex tasks efficiently.
Beginner Tips
- Make frequent commits.
- Write clear and concise commit messages.
- Push your code to a remote repository often, especially before taking a break or finishing a task.
-
- 2.
How does Git differ from other version control systems (VCS)?
Answer: - 3.
What is the difference between Git and GitHub?
Answer: - 4.
What is a repository in Git?
Answer: - 5.
Explain the concept of a commit in Git.
Answer: - 6.
What is the difference between a working directory, staging area, and repository in Git?
Answer: - 7.
Define branching in Git and its importance.
Answer: - 8.
What is a
HEADin Git?Answer: - 9.
What does the ‘clone’ operation in Git do?
Answer: - 10.
How does Git store information?
Answer:
Basic Git Commands
- 11.
How do you initialize a new Git repository?
Answer: - 12.
Explain the purpose of the
git statuscommand.Answer: - 13.
What does the
git addcommand do?Answer: - 14.
How do you create a commit in Git?
Answer: - 15.
What information is contained in a commit object in Git?
Answer: