Master technical and career interviews with structured answers—short definition, real examples, pitfalls, and how to answer in 60–90 seconds.
Use git diff with two commit hashes: git diff <commit1> <commit2> This shows line-by-line changes between the two commits. Example: If you want to compare how your project changed between version 1.0 and vers…
Locally: git branch -d feature/old-branch (-D for force delete if it’s not merged) Remotely: git push origin --delete feature/old-branch Real-world example: fter merging your feature branch into main, you can safely dele…
To clone an existing repository, you use the git clone command followed by the URL of the remote repository: git clone This command creates a copy of the repository on your local machine, including all its files nd histo…
A lightweight, movable pointer to a commit, allowing for parallel development. What interviewers expect A clear definition tied to Version Control in Git & GitHub projects Trade-offs (performance, maintainability, se…
git add: This command stages changes, telling Git which modifications you want to include in the next commit. It doesn't save the changes to the repository yet, just prepares them. git commit: This actually saves the cha…
&lt;branch-name&gt; - moves your HEAD pointer to another branch. What interviewers expect A clear definition tied to Version Control in Git & GitHub projects Trade-offs (performance, maintainability, security…
Answer: To slim down a bloated repository: Remove large unnecessary files: git filter-repo --path path/to/largefile --invert-paths What interviewers expect A clear definition tied to Version Control in Git & GitHub p…
In CI/CD, I automate version tagging to keep releases consistent and traceable. Example pipeline step (GitHub Actions): name: Tag release run: | VERSION=$(node -p "require('./package.json').version") git tag -a "v$VERSIO…
spect GitHub Flow Git Flow Purpose Simple branching model for continuous delivery Structured model for release management Branche Only main and short-lived feature branches Multiple: main, develop, feature, release, hotf…
A detached HEAD happens when Git’s HEAD (your current position) points to a specific commit instead of a branch. If you make new commits in this state, they won’t belong to any branch — you could lose them if you switch…
A detached HEAD occurs when Git’s HEAD (which points to your current branch) points to a specific commit instead of a branch. This means you’re not working on any branch — any new commits made in this state are “orphaned…
Answer: git checkout &lt;branch-name&gt; or git switch &lt;branch-name&gt; - moves your HEAD pointer to another branch. What interviewers expect A clear definition tied to Version Control in Git & Git…
Answer: Migrating involves preserving history, branches, and tags. Steps (SVN example): Install Git SVN: git svn clone -trunk=trunk -branches=branches --tags=tags What interviewers expect A clear definition tied to Versi…
A protected branch (like main) restricts direct commits or merges unless specific rules are met. You can configure: Require pull request reviews Require status checks (tests) to pass Restrict who can push Prevent force p…
Answer: When two branches modify the same part of a file, Git can’t automatically decide which version to keep — this creates a conflict. Git will: What interviewers expect A clear definition tied to Version Control in G…
git cherry-pick lets you apply a specific commit from one branch to another, without merging the entire branch. Example: Imagine you fixed a typo in the develop branch but need that same fix in main immediately. Instead…
Key practices I Branch-per-feature model – Each developer works on isolated branches. Pull Requests (PRs) for merging into main. Code reviews + CI tests required before merging. Protected branches prevent direct commits.…
A protected branch (like main) restricts direct commits or merges unless specific rules are met. You can configure: Require pull request reviews Require status checks (tests) to pass Restrict who can push Prevent force p…
git cherry-pick lets you apply a specific commit from one branch to another, without merging the entire branch. Example: Imagine you fixed a typo in the develop branch but need that same fix in main immediately. Instead…
The .gitignore file tells Git which files or directories it should ignore when tracking changes. This is useful for files that aren’t necessary in the repository, like log files, compiled binaries, or local configuration…
git merge &lt;branch-name&gt; - combines changes from one branch into another. What interviewers expect A clear definition tied to Version Control in Git & GitHub projects Trade-offs (performance, maintainabi…
I treat Git as the single source of truth for builds and deployments. My approach: Each merge to main triggers CI/CD pipelines (GitHub Actions, Jenkins, or GitLab CI). Pipelines: Run tests, lint, and security scans. Tag…
I believe in a clean, meaningful Git history that tells the story of the project clearly. Here’s how I maintain it: Use atomic commits (each commit = one logical change) Write clear commit messages: feat: add user profil…
Squashing combines multiple small commits into one clean commit before merging — keeping history tidy. Options: On GitHub: When merging a PR, select “Squash and merge.” On local machine: git rebase -i HEAD~3 Change extra…
You can interactively rebase to edit, squash, or reorder commits using: git rebase -i HEAD~3 This opens an editor showing the last 3 commits: pick 1a2b3c Fix typo in footer pick 4d5e6f Add login API pick 7g8h9i Update UI…
Git & GitHub Developer Essentials · Version Control
Use git diff with two commit hashes:
git diff <commit1> <commit2>
This shows line-by-line changes between the two commits.
Example:
If you want to compare how your project changed between version 1.0 and version 1.1:
git diff v1.0 v1.1
You’ll see added, removed, and modified lines across files.
Git & GitHub Developer Essentials · Version Control
Locally:
git branch -d feature/old-branch
Remotely:
git push origin --delete feature/old-branch
fter merging your feature branch into main, you can safely delete it to keep your repository
clean.
Git & GitHub Developer Essentials · Version Control
To clone an existing repository, you use the git clone command followed by the URL of
the remote repository:
git clone
This command creates a copy of the repository on your local machine, including all its files
nd history.
Real-World Example:
If you're joining an open-source project on GitHub, you can clone the repository to your
machine by running the git clone command. This gives you access to the full codebase
to start contributing.
Git & GitHub Developer Essentials · Version Control
A lightweight, movable pointer to a commit, allowing for parallel development.
In a production Git & GitHub application, teams apply this when handling user-facing features or integration boundaries. For example, you might use it during a sprint where reliability and observability matter—logging metrics, validating edge cases, and documenting the decision in an ADR so future developers understand why the approach was chosen.
Tip: Practice aloud on Toolliyo mock interview or the Interview Q&A section before your real interview.
Git & GitHub Developer Essentials · Version Control
include in the next commit. It doesn't save the changes to the repository yet, just
prepares them.
in your project’s history.
Real-World Example:
You’ve edited a few files in your project. First, you use git add . to stage all changes,
nd then you use git commit -m "Fixed bug in homepage" to save those changes
to the repository.
Git & GitHub Developer Essentials · Version Control
<branch-name> - moves your HEAD pointer to another branch.
In a production Git & GitHub application, teams apply this when handling user-facing features or integration boundaries. For example, you might use it during a sprint where reliability and observability matter—logging metrics, validating edge cases, and documenting the decision in an ADR so future developers understand why the approach was chosen.
Tip: Practice aloud on Toolliyo mock interview or the Interview Q&A section before your real interview.
Git & GitHub Developer Essentials · Version Control
Answer: To slim down a bloated repository: Remove large unnecessary files: git filter-repo --path path/to/largefile --invert-paths
In a production Git & GitHub application, teams apply this when handling user-facing features or integration boundaries. For example, you might use it during a sprint where reliability and observability matter—logging metrics, validating edge cases, and documenting the decision in an ADR so future developers understand why the approach was chosen.
Tip: Practice aloud on Toolliyo mock interview or the Interview Q&A section before your real interview.
Git & GitHub Developer Essentials · Version Control
In CI/CD, I automate version tagging to keep releases consistent and traceable.
Example pipeline step (GitHub Actions):
run: |
VERSION=$(node -p "require('./package.json').version")
git tag -a "v$VERSION" -m "Release version $VERSION"
git push origin "v$VERSION"
Versioning style:
I use Semantic Versioning (SemVer) → MAJOR.MINOR.PATCH
Example: v2.1.4
This helps CI/CD pipelines automatically trigger deployments for new versions.
Git & GitHub Developer Essentials · Version Control
spect GitHub Flow Git Flow
Purpose Simple branching model for
continuous delivery
Structured model for release
management
Branche
Only main and short-lived feature
branches
Multiple: main, develop, feature,
release, hotfix
Workflow Create branch → Commit → Pull
Request → Merge → Deploy
Feature branches merge into develop,
then release/hotfix merges into main
Use Case SaaS projects, frequent deploys Complex products with scheduled
releases
Example:
releases.
Git & GitHub Developer Essentials · Version Control
A detached HEAD happens when Git’s HEAD (your current position) points to a specific
commit instead of a branch. If you make new commits in this state, they won’t belong to any
branch — you could lose them if you switch branches.
How to fix it:
If you accidentally commit in a detached HEAD state:
git switch -c temp-branch
This creates a new branch from your current state so your commits aren’t lost.
Example:
You checked out an old commit to test something:
git checkout a1b2c3d
If you make changes, create a branch to save them before switching back.Git & GitHub Developer Essentials · Version Control
A detached HEAD occurs when Git’s HEAD (which points to your current branch) points to a
specific commit instead of a branch. This means you’re not working on any branch — any
new commits made in this state are “orphaned” unless you create a branch from them.
Example:
If you check out an old commit directly:
git checkout a1b2c3d
You’re in a detached HEAD state.
If you make changes here and don’t create a new branch, you could lose them later.
Fix:
Create a new branch to save your work:
git checkout -b hotfix/rollback-test
Git & GitHub Developer Essentials · Version Control
Answer: git checkout <branch-name> or git switch <branch-name> - moves your HEAD pointer to another branch.
In a production Git & GitHub application, teams apply this when handling user-facing features or integration boundaries. For example, you might use it during a sprint where reliability and observability matter—logging metrics, validating edge cases, and documenting the decision in an ADR so future developers understand why the approach was chosen.
Tip: Practice aloud on Toolliyo mock interview or the Interview Q&A section before your real interview.
Git & GitHub Developer Essentials · Version Control
Answer: Migrating involves preserving history, branches, and tags. Steps (SVN example): Install Git SVN: git svn clone -trunk=trunk -branches=branches --tags=tags
In a production Git & GitHub application, teams apply this when handling user-facing features or integration boundaries. For example, you might use it during a sprint where reliability and observability matter—logging metrics, validating edge cases, and documenting the decision in an ADR so future developers understand why the approach was chosen.
Tip: Practice aloud on Toolliyo mock interview or the Interview Q&A section before your real interview.
Git & GitHub Developer Essentials · Version Control
A protected branch (like main) restricts direct commits or merges unless specific rules are
met.
You can configure:
Example:
You protect the main branch to ensure developers can only merge code through PRs that
have passed CI checks and received approval — preventing accidental overwrites.
Git & GitHub Developer Essentials · Version Control
Answer: When two branches modify the same part of a file, Git can’t automatically decide which version to keep — this creates a conflict. Git will:
In a production Git & GitHub application, teams apply this when handling user-facing features or integration boundaries. For example, you might use it during a sprint where reliability and observability matter—logging metrics, validating edge cases, and documenting the decision in an ADR so future developers understand why the approach was chosen.
Tip: Practice aloud on Toolliyo mock interview or the Interview Q&A section before your real interview.
Git & GitHub Developer Essentials · Version Control
git cherry-pick lets you apply a specific commit from one branch to another, without
merging the entire branch.
Example:
Imagine you fixed a typo in the develop branch but need that same fix in main
immediately. Instead of merging all of develop, you can just cherry-pick that commit:
git cherry-pick 1a2b3c4
Real-world use case:
Useful when you want to apply a hotfix or small bug fix without merging unrelated feature
work.
Git & GitHub Developer Essentials · Version Control
Key practices I
conflicts.
Example:
t a fintech startup, 8 engineers worked on a single monorepo. We used short-lived
branches and daily merges, with GitHub Actions running automatic tests for every PR — this
reduced integration headaches.
Git & GitHub Developer Essentials · Version Control
A protected branch (like main) restricts direct commits or merges unless specific rules are
met.
You can configure:
Example:
You protect the main branch to ensure developers can only merge code through PRs that
have passed CI checks and received approval — preventing accidental overwrites.
Git & GitHub Developer Essentials · Version Control
git cherry-pick lets you apply a specific commit from one branch to another, without
merging the entire branch.
Example:
Imagine you fixed a typo in the develop branch but need that same fix in main
immediately. Instead of merging all of develop, you can just cherry-pick that commit:
git cherry-pick 1a2b3c4
Real-world use case:
Useful when you want to apply a hotfix or small bug fix without merging unrelated feature
work.
Git & GitHub Developer Essentials · Version Control
The .gitignore file tells Git which files or directories it should ignore when tracking
changes. This is useful for files that aren’t necessary in the repository, like log files, compiled
binaries, or local configuration files.
Real-World Example:
If you're working on a Node.js project, you likely don’t want to track the node_modules/
directory, since it can be recreated by running npm install. You can add
node_modules/ to your .gitignore file to ensure that Git doesn't track those files.
Git & GitHub Developer Essentials · Version Control
git merge <branch-name> - combines changes from one branch into another.
In a production Git & GitHub application, teams apply this when handling user-facing features or integration boundaries. For example, you might use it during a sprint where reliability and observability matter—logging metrics, validating edge cases, and documenting the decision in an ADR so future developers understand why the approach was chosen.
Tip: Practice aloud on Toolliyo mock interview or the Interview Q&A section before your real interview.
Git & GitHub Developer Essentials · Version Control
I treat Git as the single source of truth for builds and deployments.
My approach:
CI).
Best practices:
Example:
In a microservices project, each push to main triggered automated Docker builds.
Tagging a commit with v2.3.1 automatically deployed that version to production —
ensuring traceability and rollback capability.
✅ In summary:
The key to mastering Git isn’t just knowing commands — it’s knowing how to
recover, clean, and automate safely.
Bonus / DevOps Integration
Git & GitHub Developer Essentials · Version Control
I believe in a clean, meaningful Git history that tells the story of the project clearly.
Here’s how I maintain it:
Write clear commit messages:
feat: add user profile API
fix: correct typo in dashboard title
chore: update dependencies
Example:
When reviewing history later, I can quickly find “where” and “why” a change was made — no
messy “temp commit” or “final fix” messages.
✅ In short:
healthy Git workflow = clear branches, clean commits, automated checks, and
collaborative reviews.
Real-World & Troubleshooting
Scenarios
Git & GitHub Developer Essentials · Version Control
Squashing combines multiple small commits into one clean commit before merging —
keeping history tidy.
Options:
When merging a PR, select “Squash and merge.”
On local machine:
git rebase -i HEAD~3
Change extra commits from pick → squash and then push with:
git push -f
If your PR has 10 commits like “fix typo,” “oops forgot semicolon,” and “final fix,” you squash
them into one commit:
👉 Add responsive navbar component
✅ Pro Tip:
clean workflow often looks like this:
Git & GitHub Developer Essentials · Version Control
You can interactively rebase to edit, squash, or reorder commits using:
git rebase -i HEAD~3
This opens an editor showing the last 3 commits:
pick 1a2b3c Fix typo in footer
pick 4d5e6f Add login API
pick 7g8h9i Update UI color scheme
You can change:
Real-world example:
Before merging your feature branch, you may use git rebase -i to combine small “fix
typo” or “debug print” commits into a clean, single commit.
⚠ Don’t rewrite history on shared branches that others are using — it can
cause conflicts and confusion.
GitHub & Remote Repository
Management