1.9 KiB
1.9 KiB
name, description
| name | description |
|---|---|
| land-branch-without-checkout | Open a PR from a shared worktree when workspace policy blocks git checkout/restore: push a named branch ref from HEAD without switching branches. |
Landing a branch when git checkout is policy-blocked
Shared-workspace policy blocks git checkout and git restore (working-tree
switches could strand concurrent agents' uncommitted work). You still must ship
the commit on the current worktree branch as a named chore|feat|fix/<issue>-<slug>
branch. Never work around the block — go around it via refs.
Sequence
# 1. commit only your files (atomic); leave other dirty paths alone
git add <your-files> && git commit -m "..."
# 2. branch ref at HEAD — no working-tree change, stays on wt/<...>
git branch <type>/<issue>-<slug> HEAD
git push origin <type>/<issue>-<slug> # pre-push hooks still run
# 3. PR via tracker API with head = pushed ref (see gitea-pr-api-cycle / gh)
- The worktree stays checked out on
wt/<timestamp>; the new branch exists only as the pushed ref (plus a local ref that merges cleanly later). -uupstream tracking on the wt branch is misleading — skip it; setgit config branch.<name>.remote origin+.mergeonly if you will later check the branch out.- Dirty regenerated fixtures left behind (e.g.
gen:samplePDFs rewritten by setup/gate runs):git restoreis also blocked — do NOT edit-forward to revert them; report them. They are regenerated on every bootstrap, so dirt is expected and harmless.
Verify
git ls-remote --heads origin <branch>prints the same sha asgit rev-parse HEAD.- PR API returns 201 with
head.shaequal to that sha.
Do NOT
git checkout -b,git stash,git restore,git reset --hardhere — all working-tree mutations the policy can block, and stashes in a shared checkout are a cross-agent footgun.