diff --git a/cmd/sdlc/cmd_merge.go b/cmd/sdlc/cmd_merge.go index d769ca5..546a354 100644 --- a/cmd/sdlc/cmd_merge.go +++ b/cmd/sdlc/cmd_merge.go @@ -113,12 +113,21 @@ var mergeCmd = &cobra.Command{ _ = resetCmd.Run() } + // Determine merge ref: prefer local branch, fall back to origin/ + // when running in worker pods where resetToMain leaves only remote refs. + mergeRef := f.Branch + checkBranch := exec.Command("git", "rev-parse", "--verify", f.Branch) + checkBranch.Dir = root + if err := checkBranch.Run(); err != nil { + mergeRef = "origin/" + f.Branch + } + // Merge mergeArgs := []string{"merge"} if strategy == "squash" { mergeArgs = append(mergeArgs, "--squash") } - mergeArgs = append(mergeArgs, f.Branch) + mergeArgs = append(mergeArgs, mergeRef) gitMerge := exec.Command("git", mergeArgs...) gitMerge.Dir = root