GISI ADO Level study materials
GISI ADO Level study resources

GISI ADO Level practice questions

One question at a time. Build your GISI ADO Level understanding.

First 50 of 200 questions. Each one lists the choices, the correct answer, and an explanation. The checker at the top of this page saves progress in this browser when it is available.

Continue in the practice tool above to load more questions, 50 at a time.

Question 1Introduction to DevOps

In DevOps, what does the CALMS framework stand for?

  1. Culture, Automation, Lean, Measurement, Sharing Correct answer.
  2. Culture, Agile, Lean, Metrics, Scrum
  3. Continuous, Automation, Learning, Measurement, Systems
  4. Coding, Automation, Logging, Monitoring, Security

Explanation

CALMS is a widely used model for assessing DevOps adoption. It stands for Culture, Automation, Lean, Measurement, and Sharing, and it emphasizes that DevOps is as much about people and flow as about tooling.

Question 2Introduction to DevOps

Which statement best describes the DevOps relationship between development and operations?

  1. Development and operations share responsibility for the full service lifecycle. Correct answer.
  2. Operations owns production incidents while development owns feature delivery.
  3. Development hands off tested artifacts to operations through a formal gate.
  4. Operations writes deployment scripts that development must not modify.

Explanation

DevOps extends collaboration across the entire service lifecycle so that one team is accountable for building and running the service. Shared ownership replaces the traditional throw-it-over-the-wall handoff between separate teams.

Question 3Introduction to DevOps

A team wants to reduce the time between committing code and receiving feedback from an automated test suite. Which DevOps practice most directly addresses this goal?

  1. Building a CI pipeline that runs tests on every commit Correct answer.
  2. Scheduling a monthly release readiness review
  3. Adding a manual QA sign-off before merging
  4. Increasing the size of the operations on-call rotation

Explanation

Continuous integration runs automated builds and tests on each commit, giving developers fast feedback on whether their change broke anything. This shortens the feedback loop far more than periodic reviews or manual gates.

Question 4Introduction to DevOps

What is the primary purpose of infrastructure as code (IaC)?

  1. To define and provision infrastructure through versioned machine-readable files Correct answer.
  2. To eliminate the need for any testing of environments
  3. To let operators click through consoles faster than before
  4. To replace all application source code with configuration files

Explanation

IaC expresses servers, networks, and other resources in files that can be versioned, reviewed, and reapplied consistently. This makes environments reproducible and auditable instead of relying on manual console changes.

Question 5Introduction to DevOps

Which metric in the DORA set measures how long it takes from code committed to running in production?

  1. Mean time to restore
  2. Lead time for changes Correct answer.
  3. Change failure rate
  4. Deployment frequency

Explanation

Lead time for changes tracks the elapsed time from commit to the change running in production. It captures the flow efficiency of the delivery pipeline rather than how often or how reliably deployments occur.

Question 6Introduction to DevOps

What distinguishes continuous delivery from continuous deployment?

  1. Continuous delivery deploys to production automatically, while continuous deployment requires manual approval.
  2. Continuous delivery requires feature branches, while continuous deployment requires trunk-based development.
  3. Continuous delivery keeps every change releasable but may require a human decision to deploy, while continuous deployment releases automatically. Correct answer.
  4. Continuous delivery applies only to infrastructure, while continuous deployment applies only to applications.

Explanation

Continuous delivery guarantees that the mainline is always in a deployable state, but the final production release can still be a business decision. Continuous deployment removes that manual step and pushes every passing change to production automatically.

Question 7Introduction to DevOps

A team's deployment pipeline passes all automated tests, but a release still causes an outage because a required environment variable was missing in production. Which DevOps improvement addresses the root cause most directly?

  1. Adding more unit tests for the application logic
  2. Reducing the number of deployments per week
  3. Promoting the same tested artifact and configuration through every environment Correct answer.
  4. Requiring a longer manual approval meeting before releases

Explanation

The failure came from environment drift, not from application logic, so the fix is to build once and promote the identical artifact and configuration through staging and production. That removes the untested configuration difference that caused the outage.

Question 8Introduction to DevOps

In the context of DevOps, what is a blameless postmortem?

  1. A process for assigning a root-cause owner to each production incident
  2. A review that documents the incident timeline and contributing factors without punishing individuals Correct answer.
  3. A meeting held only when an outage exceeds a contractual penalty threshold
  4. A report that lists which engineer caused each deployment failure

Explanation

A blameless postmortem focuses on systems and contributing factors rather than individual fault, which encourages honest reporting. The goal is to learn and prevent recurrence, not to assign blame.

Question 9Introduction to DevOps

A team wants to detect configuration drift between its declared infrastructure and the actual cloud resources. Which practice is most appropriate?

  1. Deleting all resources and recreating them on every commit
  2. Disabling state tracking so resources are managed individually
  3. Relying on operators to remember the last console changes
  4. Running a plan or diff step that compares declared state with live state in the pipeline Correct answer.

Explanation

A plan or diff step compares the desired configuration in code against the real environment and surfaces drift before it causes problems. This makes drift visible and reviewable within the normal pipeline.

Question 10Introduction to DevOps

What role does a version control system play in a DevOps workflow?

  1. It stores the single source of truth for code, configuration, and pipeline definitions with full history Correct answer.
  2. It guarantees that every commit is deployable without further checks
  3. It replaces the need for automated testing by tracking who changed each file
  4. It isolates each developer's work so changes never need review

Explanation

Version control holds code, configuration, and pipeline definitions together with a complete, auditable history. That shared source of truth enables review, rollback, and reproducible builds across the team.

Question 11Introduction to DevOps

A team measures deployment frequency and change failure rate but ignores recovery time. Which DORA metric is missing from their dashboard?

  1. Change volume
  2. Failed deployment recovery time Correct answer.
  3. Lead time for changes
  4. Test coverage percentage

Explanation

The four DORA metrics are deployment frequency, lead time for changes, change failure rate, and failed deployment recovery time. A dashboard missing recovery time omits how quickly the team restores service after a failed deployment.

Question 12Introduction to DevOps

Which practice best supports the DevOps principle of amplifying feedback?

  1. Collecting metrics but reviewing them only at annual planning
  2. Suppressing alerts during business hours to reduce noise
  3. Restricting monitoring access to a separate operations group
  4. Routing production alerts and monitoring data back to the teams that build the service Correct answer.

Explanation

Amplifying feedback means the people who build a service can see how it behaves in production and act on that signal. Routing alerts and telemetry to those teams closes the loop between change and outcome.

Question 13Introduction to DevOps

A team adopts trunk-based development. What behavior does this require?

  1. Code review is skipped to keep the mainline moving
  2. Developers integrate small changes into a shared mainline frequently Correct answer.
  3. Releases are cut only from tagged release branches
  4. Each feature is developed on a long-lived branch merged at release time

Explanation

Trunk-based development has developers commit small, frequent changes to a shared mainline, which keeps integration risk low. Long-lived feature branches are the pattern it replaces.

Question 14Introduction to DevOps

An organization wants to shift security left in its delivery pipeline. Which change reflects that goal?

  1. Performing a penetration test once a year after release
  2. Assigning all security review to a separate team at the end of the project
  3. Documenting security requirements only in the final operations runbook
  4. Running dependency and static security scans automatically on each pull request Correct answer.

Explanation

Shifting security left means security checks run early and automatically as part of the normal development flow. Automated scanning on pull requests surfaces issues while they are cheap to fix.

Question 15Introduction to DevOps

What is the main benefit of deploying small, frequent changes rather than large, infrequent releases?

  1. Smaller changes eliminate the need for monitoring in production
  2. Smaller changes reduce the risk per deployment and make failures easier to isolate Correct answer.
  3. Smaller changes guarantee that no deployment will ever fail
  4. Smaller changes remove the need for automated rollback

Explanation

Smaller batches limit the blast radius of any single change and make it easier to identify which change caused a problem. They also shorten the feedback cycle, so issues are caught sooner.

Question 16Introduction to DevOps

A platform team provides a self-service environment provisioning portal to product teams. Which DevOps outcome does this most directly support?

  1. Removing the need for any governance over cloud spending
  2. Centralizing all deployment decisions in the platform team
  3. Eliminating the need for infrastructure as code
  4. Reducing lead time by letting teams obtain environments without manual tickets Correct answer.

Explanation

Self-service provisioning removes the manual ticket queue that delays environment creation, directly reducing lead time. Governance can still be built into the portal through policy and quotas.

Question 17Introduction to DevOps

A team's change failure rate is high while deployment frequency is also high. Which interpretation is most consistent with the DORA model?

  1. The team is not deploying often enough to gather meaningful data
  2. Change failure rate is irrelevant when deployment frequency is high
  3. The team has achieved elite performance because frequency is high
  4. The team deploys often but a large share of those deployments cause impairment, so recovery and quality practices need attention Correct answer.

Explanation

High frequency with a high failure rate means throughput is being achieved at the cost of stability. The DORA model treats these as complementary dimensions, so the team should investigate quality gates, testing, and recovery practices.

Question 18Introduction to DevOps

A regulated organization must keep manual approval before production releases but still wants continuous delivery benefits. Which approach is most consistent with DevOps practice?

  1. Require approval at every environment stage to maximize control
  2. Abandon continuous delivery because approval gates are incompatible with it
  3. Automate build, test, and environment promotion so the artifact is always releasable, and keep a single auditable approval step before production Correct answer.
  4. Move all testing after the approval step to shorten the pipeline

Explanation

Continuous delivery requires that every change is releasable, not that release is automatic. Automating the pipeline up to production while retaining one auditable approval preserves compliance without sacrificing delivery speed.

Question 19Introduction to DevOps

A team wants to reduce mean time to restore after failed deployments. Which combination of practices best supports that goal?

  1. Removing deployment history so engineers investigate from scratch
  2. Larger release batches and fewer monitoring alerts
  3. Automated rollback, small deployable batches, and observability that quickly identifies the failing change Correct answer.
  4. Longer approval meetings and manual rebuilds of each environment

Explanation

Fast recovery depends on detecting the failure quickly, identifying the responsible change, and reverting or fixing it with minimal delay. Automated rollback, small batches, and good observability each shorten a different part of that loop.

Question 20Introduction to DevOps

An organization claims to practice DevOps but still requires a separate operations team to manually rebuild production servers from a runbook after each release. Which assessment is most accurate?

  1. The practice is ideal because manual rebuilds provide a control point
  2. The practice is acceptable because operations owns production environments
  3. The manual rebuild indicates environment provisioning is not codified, undermining reproducibility and slowing recovery Correct answer.
  4. The practice proves continuous integration is fully implemented

Explanation

Rebuilding servers by hand from a runbook means infrastructure is not expressed as code, so environments are hard to reproduce and recovery is slow. This conflicts with the DevOps goals of automation, consistency, and fast restoration.

Question 21Version Control with Git

In a Git repository used for a GISI-managed integration project, what does a commit primarily record?

  1. A snapshot of the tracked project state at a point in time, linked to its parent commit Correct answer.
  2. A temporary stash that is deleted automatically after the next fetch
  3. A copy of the remote server configuration used for the deployment
  4. A live synchronization lock on the working directory until the next push

Explanation

A commit captures the state of the tracked files at that moment and references its parent commit, forming the project history. It is an immutable object in the local repository, not a lock, a server configuration, or a stash.

Question 22Version Control with Git

A developer wants to see which files are modified but not yet staged in the current working tree. Which command shows exactly that?

  1. git diff Correct answer.
  2. git remote -v
  3. git log --oneline
  4. git show HEAD

Explanation

Running git diff with no arguments compares the working tree against the staging area, which reveals unstaged modifications. The other commands display history, a single commit, or remote URLs instead of pending working-tree changes.

Question 23Version Control with Git

Which command stages a single modified file named boundary.geojson so that it will be included in the next commit?

  1. git checkout boundary.geojson
  2. git push boundary.geojson
  3. git add boundary.geojson Correct answer.
  4. git commit boundary.geojson

Explanation

git add moves the current content of the named file into the staging area, ready for the next commit. Committing requires already-staged content, pushing transfers commits, and checkout switches or restores files rather than staging them.

Question 24Version Control with Git

What is the purpose of a branch in a Git repository?

  1. To encrypt commits before they are pushed to a remote
  2. To provide a movable pointer to a line of development that can diverge from other lines Correct answer.
  3. To mark a commit as permanently read-only
  4. To duplicate the entire repository on disk for each developer

Explanation

A branch is a lightweight, movable reference to a commit that lets development proceed independently and later be merged. It does not copy the repository, encrypt data, or make commits immutable.

Question 25Version Control with Git

A developer has just run git init in an empty directory. Which statement describes the resulting repository?

  1. All files in the parent directory are immediately tracked and committed
  2. A remote origin is configured automatically and the default branch is pushed
  3. A .git directory is created containing the object database and configuration, and the working tree is otherwise empty Correct answer.
  4. A bare repository is created with no working tree at all

Explanation

git init creates the .git directory that holds objects, refs, and configuration, while leaving the working tree untouched. No remote is added, nothing is committed, and the repository is non-bare by default.

Question 26Version Control with Git

Which command creates a new branch named feature/roads and switches to it in one step?

  1. git tag feature/roads
  2. git switch -c feature/roads Correct answer.
  3. git branch feature/roads
  4. git merge feature/roads

Explanation

git switch -c creates the branch and checks it out immediately, and git checkout -b does the same. git branch alone only creates the branch without switching, merge integrates it, and tag creates a tag.

Question 27Version Control with Git

What does the HEAD reference normally point to in a Git repository?

  1. The remote tracking branch of origin
  2. The commit currently checked out, usually through a branch reference Correct answer.
  3. The staging area index file
  4. The oldest commit in the repository

Explanation

HEAD identifies the current checkout, typically by pointing to a branch that in turn points to a commit. It is not the oldest commit, a remote branch, or the index file itself.

Question 28Version Control with Git

A developer wants to record the commit message 'Adjust parcel layer symbology' without opening an editor. Which command does this?

  1. git log -m "Adjust parcel layer symbology"
  2. git commit --amend "Adjust parcel layer symbology"
  3. git commit -m "Adjust parcel layer symbology" Correct answer.
  4. git stash -m "Adjust parcel layer symbology"

Explanation

The -m option supplies the commit message inline on the command line so no editor is launched. The other commands amend an existing commit, display history, or shelve changes rather than creating a new commit with that message.

Question 29Version Control with Git

A developer runs git fetch origin on a tracking branch and then inspects the repository. What has changed locally?

  1. Remote-tracking refs such as origin/main have been updated, but the local branch and working tree are unchanged Correct answer.
  2. Nothing in the repository changed because fetch only verifies connectivity
  3. The working tree files have been updated to match origin automatically
  4. The local branch has been fast-forwarded to origin and the index updated

Explanation

git fetch downloads new objects and updates remote-tracking refs, but it does not merge them into the current branch or modify the working tree. Updating the local branch requires a subsequent merge, rebase, or pull.

Question 30Version Control with Git

Two developers edit the same line of a configuration file on different branches, and a merge is attempted. What does Git report?

  1. A silent overwrite of one developer's change by the other
  2. A new branch created to hold both versions of the file
  3. A merge conflict, with conflict markers written into the affected file and the merge left uncommitted Correct answer.
  4. An automatic rejection of the merge with no changes to the working tree

Explanation

When both sides change the same region, Git cannot choose automatically and records a conflict, inserting markers and pausing the merge for manual resolution. It never silently discards a change or aborts without touching the tree in this case.

Question 31Version Control with Git

What is the effect of running git rebase main while checked out on a feature branch?

  1. The main branch is reset to the feature branch tip
  2. The feature branch commits are replayed onto the tip of main, producing new commit hashes Correct answer.
  3. The feature branch is merged into main with a merge commit
  4. The feature branch is deleted after its commits are copied to main

Explanation

Rebase takes the commits unique to the feature branch and reapplies them on top of main, which rewrites them and therefore changes their hashes. It does not merge, move main, or delete the feature branch.

Question 32Version Control with Git

A developer wants to undo the most recent commit while keeping its changes staged. Which command accomplishes this?

  1. git reset --soft HEAD~1 Correct answer.
  2. git reset --hard HEAD~1
  3. git revert HEAD
  4. git checkout HEAD~1

Explanation

git reset --soft moves the branch pointer back one commit while leaving the index and working tree intact, so the changes remain staged. A hard reset discards them, revert creates a new inverse commit, and checkout detaches HEAD.

Question 33Version Control with Git

Why is git revert often preferred over git reset for undoing a commit that has already been pushed to a shared remote?

  1. Revert rewrites the published history so all clones update automatically
  2. Revert compresses the history so the remote stores fewer objects
  3. Revert adds a new commit that reverses the change, so it does not rewrite history that others may have based work on Correct answer.
  4. Revert requires administrator privileges on the remote server

Explanation

Revert preserves history by appending an inverse commit, which is safe for shared branches because other clones are not forced to reconcile rewritten commits. Reset moves branch pointers and rewrites history, which disrupts collaborators.

Question 34Version Control with Git

A developer needs to set their commit identity for all repositories on the machine. Which command does this?

  1. git config user.name "A. Developer"
  2. git commit --author "A. Developer"
  3. git config --global user.name "A. Developer" Correct answer.
  4. git init --user "A. Developer"

Explanation

The --global flag writes the setting to the user-level configuration file, applying it to every repository for that account. Without the flag the setting is local to the current repository, and the other commands do not set identity configuration.

Question 35Version Control with Git

A developer wants to combine several recent commits on a feature branch into one before merging. Which command is designed for this?

  1. git bisect
  2. git blame
  3. git rebase -i Correct answer.
  4. git cherry-pick

Explanation

Interactive rebase lets the developer mark commits as squash or fixup, collapsing them into a single commit. Cherry-pick copies commits, bisect locates a bad commit, and blame annotates lines with their last change.

Question 36Version Control with Git

What does git stash do with uncommitted changes in the working tree?

  1. Permanently deletes them after writing a backup to the remote
  2. Merges them into the most recent commit
  3. Commits them to the current branch with an automatic message
  4. Saves them on a stack and restores the working tree to match HEAD Correct answer.

Explanation

Stash records the current modifications and staged changes on a stack, then reverts the working tree so the developer can switch context. The changes can later be reapplied with git stash pop or git stash apply.

Question 37Version Control with Git

A developer accidentally deleted a local branch named release-2 that had not been merged. Which command is most likely to recover it?

  1. git reflog Correct answer.
  2. git gc --prune=now
  3. git fetch --all
  4. git clean -fd

Explanation

The reflog records where branch tips and HEAD have pointed, so the deleted branch's last commit can be found and a new branch created at that hash. Fetching does not restore local branches, clean removes untracked files, and aggressive garbage collection can discard unreachable objects.

Question 38Version Control with Git

What is the primary difference between git pull and git fetch?

  1. Pull downloads objects and integrates them into the current branch, while fetch only downloads and updates remote-tracking refs Correct answer.
  2. Fetch contacts the remote, while pull works entirely offline
  3. Fetch requires a clean working tree, while pull does not
  4. Pull only works on bare repositories, while fetch works on non-bare ones

Explanation

Pull is effectively a fetch followed by a merge or rebase into the current branch, whereas fetch stops after updating remote-tracking refs. This integration step is what distinguishes the two commands.

Question 39Version Control with Git

A team wants each commit on the protected main branch to be cryptographically attributable to its author. Which Git feature addresses this?

  1. A pre-receive hook that renames the branch
  2. Signed commits using GPG or SSH keys Correct answer.
  3. Shallow clones with --depth=1
  4. A .gitignore file committed to the repository

Explanation

Commit signing attaches a cryptographic signature that verifies the author's identity and can be enforced by branch protection or hooks. Ignore files, branch renaming, and shallow clones do not provide attribution.

Question 40Version Control with Git

A developer wants to apply a specific commit from another branch onto the current branch without merging the whole branch. Which command does this?

  1. git revert <commit>
  2. git merge --no-ff <commit>
  3. git cherry-pick <commit> Correct answer.
  4. git reset <commit>

Explanation

Cherry-pick replays the changes introduced by the named commit onto the current branch, creating a new commit with a new hash. Merge integrates entire histories, revert creates an inverse change, and reset moves the branch pointer.

Question 41Version Control with Git

What does a .gitignore entry such as *.log accomplish?

  1. It encrypts matching files before they are pushed
  2. It prevents untracked files matching the pattern from being added or reported as untracked Correct answer.
  3. It forces matching files to be committed on every push
  4. It deletes matching files from the working tree on the next commit

Explanation

Ignore patterns tell Git to skip matching untracked files when reporting status and adding files, keeping generated artifacts out of history. They do not delete files, encrypt them, or force commits.

Question 42Version Control with Git

A file was committed and later added to .gitignore, but it still appears as tracked and its changes show in git status. Why?

  1. Ignore rules apply only to untracked files, so the file must be removed from the index with git rm --cached Correct answer.
  2. The repository must be reinitialized for ignore rules to apply
  3. The .gitignore file must be signed before it takes effect
  4. Ignore rules apply only to files larger than one megabyte

Explanation

Git applies ignore patterns only to untracked files; once a file is tracked, it continues to be tracked. Removing it from the index with git rm --cached stops tracking while keeping the working copy.

Question 43Version Control with Git

During a merge conflict, a developer runs git merge --abort. What is the result?

  1. The merge is cancelled and the working tree and index are restored to the pre-merge state Correct answer.
  2. The incoming branch is deleted from the repository
  3. The merge commit is created with conflict markers preserved in the files
  4. The conflicting files are resolved by accepting the incoming version

Explanation

git merge --abort stops the in-progress merge and attempts to restore the working tree and index to how they were before the merge began. It does not resolve conflicts automatically, commit markers, or delete branches.

Question 44Version Control with Git

A developer runs git reset --hard HEAD~1 on a branch that has already been pushed and shared with the team. What is the main consequence?

  1. Only the local configuration is affected and no history changes
  2. The discarded commit is deleted from all clones immediately
  3. The local branch pointer moves back and the discarded commit becomes unreachable from the branch, so teammates' histories now diverge from the rewritten branch Correct answer.
  4. The remote branch is updated automatically and teammates receive the change on their next fetch

Explanation

A hard reset rewrites the local branch to an earlier commit and discards working changes, leaving the removed commit unreachable from the branch tip. Because the remote still holds the old commit, other clones diverge and must reconcile the rewritten history manually.

Question 45Version Control with Git

A developer wants to identify which commit introduced a regression in a long linear history by testing commits automatically. Which command is designed for this task?

  1. git archive
  2. git describe
  3. git bisect Correct answer.
  4. git grep

Explanation

git bisect performs a binary search between a known good and a known bad commit, checking out candidates so a test can narrow down the culprit efficiently. Grep searches content, describe names a commit relative to a tag, and archive exports a tree.

Question 46Version Control with Git

A developer wants to inspect the commit history of a repository in a compact, one-line-per-commit format that also shows a graph of branch merges. Which git log option accomplishes this?

  1. git log --oneline --graph Correct answer.
  2. git log --name-only --pretty=fuller
  3. git log --patch --reverse
  4. git log --stat --summary

Explanation

The --oneline option condenses each commit to a single line with an abbreviated hash and subject, while --graph draws an ASCII representation of the branch and merge structure. Combining them gives a compact, visually informative history view.

Question 47Version Control with Git

A developer has made several commits on a local branch and now wants to edit an earlier commit message that is three commits back. Which command starts an interactive rebase for this purpose?

  1. git revert HEAD~3
  2. git reset --soft HEAD~3
  3. git rebase -i HEAD~3 Correct answer.
  4. git commit --amend

Explanation

An interactive rebase with HEAD~3 presents the last three commits in an editor, where the developer can mark a commit as reword to change its message. This rewrites the branch history from that point forward.

Question 48Version Control with Git

A developer wants to see which files differ between the working tree and the staging area (index) before committing. Which command shows this comparison?

  1. git diff HEAD
  2. git diff Correct answer.
  3. git status --short
  4. git diff --cached

Explanation

Running git diff without arguments compares the working tree against the index, showing unstaged changes. This helps a developer review what would not yet be included in the next commit.

Question 49Version Control with Git

A team uses a centralized workflow where each developer pushes directly to the shared main branch. A developer's local main has diverged from origin/main because a teammate pushed new commits. Which command integrates the remote changes while preserving a linear history?

  1. git pull --rebase origin main Correct answer.
  2. git pull --no-rebase origin main
  3. git merge origin/main
  4. git fetch origin main

Explanation

git pull --rebase fetches the remote commits and then replays the local commits on top of them, avoiding a merge commit and keeping history linear. This suits teams that prefer a clean, linear main branch.

Question 50Version Control with Git

A developer needs to find which commit in a long linear history introduced a specific failing test. They want to automate the process by running a test script at each step. Which command supports this bisection workflow?

  1. git grep 'assertion' $(git rev-list --all)
  2. git blame --reverse HEAD
  3. git bisect run ./test.sh Correct answer.
  4. git log -S 'assertion' --oneline

Explanation

git bisect run automates binary search by executing a script at each candidate commit and using its exit code to decide whether the commit is good or bad. This efficiently narrows down the first bad commit without manual testing.