Version Control and Developer Tooling Questions

The everyday toolchain of software work: version control with Git (branching, merging, rebasing, conflict resolution, using git bisect to find a regression), command-line and shell proficiency for day-to-day navigation, log inspection, and troubleshooting, IDE and editor workflows, build systems and package/dependency management (npm, Maven, pip, Gradle, CocoaPods, and embedded/cross-compilation toolchains), and the growing practice of AI-assisted coding: using, reviewing, and verifying AI-generated code and tests. Deliberately generic across languages and stacks; language- and domain-specific frameworks live in their own categories. This topic covers a developer's individual command of these tools, not: writing durable shell automation and glue scripts (Shell Scripting and Automation owns that), producing, versioning, and publishing build artifacts or container images (Build Automation and Artifact Management owns that), release cadence and change governance (Release Management and Change Control owns that), or diagnosing a live production incident end to end (Performance Troubleshooting and Incident Response and the Observability topics own that).

HardTechnical
46 practiced

main is protected and requires review plus passing CI before merge, but you need to ship an urgent hotfix to production right now. Walk through how you'd get the fix out safely without bypassing the protections that exist for good reason, and how you'd keep the team informed.

HardTechnical
38 practiced

You ask an AI assistant to modify a function in an existing codebase, but it quietly changes the function's signature and breaks several callers elsewhere in the code. What safeguards would you put in place to catch this before merging, and how would you preserve interfaces and backward compatibility when accepting AI-generated changes going forward?

MediumTechnical
70 practiced

You accidentally deleted a branch on the remote that contained commits you need. Describe how you'd recover the branch using git reflog and remote commit hashes, including the exact commands to recreate the branch on the remote.

EasyTechnical
38 practiced

Describe the difference between creating a new branch locally and creating/pushing a remote tracking branch. Provide the sequence of commands you would use to create a feature branch, set its upstream to origin, and open a pull request (mention the typical steps on GitHub/GitLab).

EasyTechnical
40 practiced

A teammate asks: 'What is the staging area (index) and how does git add differ from git commit?' Explain what each command does and give an example where using git add -p or git add -A would matter.

Unlock Full Question Bank

Get access to all 44 Version Control and Developer Tooling interview questions and detailed answers.

Sign in to Continue

Join thousands of developers preparing for their dream job.