Package gitexec locates a git binary and runs it with the ambient
environment stripped out.
Demo and development tooling drives git on a developer's own machine, where
hooks, a signing key, or a commit template configured globally would each
break a run in a way that has nothing to do with SubmitQueue. Every command
built here therefore carries the same scrubbed environment the git merger
uses (see runway/extension/merger/git), so tooling behaves the same on every
machine.
This resolves only the executable, because tooling runs porcelain
(init, clone, commit, push) rather than constructing a merger's GitRuntime,
which additionally pins the exec path and template directory.
Preference order is the supplied path, then GIT_EXECUTABLE, then PATH — the
same convention the Runway server's runtime resolution follows, so a
deployment or a Bazel target can pin git without the caller knowing which
did.