LearnTroubleshooting

Git and PR issues

Fix problems with git, branches, and pull requests.

Use this page when a workspace can't create a branch, inspect a diff, commit, push, or open a pull request.

Git and GitHub touch a workspace in three separate places, and it helps to know which one is failing:

  1. Git itself, running inside the workspace.
  2. GitHub repository access, so Proliferate can read and write the repo.
  3. The GitHub CLI (gh), used to read and create pull requests.

Check:

  • Git works in the workspace. Basic git commands (status, diff, log) should succeed in a terminal inside the workspace. If they don't, this is an environment problem, not a Proliferate one; see cloud workspace issues if it's a cloud environment.
  • The workspace's branch exists and isn't unexpectedly detached. Each workspace tracks a current branch. If it looks detached or missing, something outside Proliferate (a manual git checkout, a force-push, a deleted remote branch) likely moved it.
  • Repository access is current. Cloud environments read your repo through the Proliferate GitHub App. Access breaks down for a few distinct reasons: the app isn't installed for your org, the app is installed but doesn't cover this repository, your GitHub account doesn't have access to it, or your own app authorization expired and needs reconnecting.
  • gh is installed and logged in. Pull request status and creation both shell out to the GitHub CLI inside the workspace. If gh isn't installed, isn't authenticated, or the remote isn't a GitHub remote at all (a GitLab or Bitbucket mirror, for example), PR features degrade with a specific reason rather than working partially.
  • The remote is reachable. A renamed remote, a revoked deploy key, or a repo that moved will all surface as a git failure the next time Proliferate tries to fetch or push.
  • The push isn't being rejected by the remote. Branch protection, required reviews, required status checks, and non-fast-forward pushes all come back as a rejected push. Proliferate surfaces the rejection instead of retrying silently.
  • The pull request target branch is correct. Confirm the base branch on the PR is the one you actually want to merge into, especially if the repo's default branch differs from what the workspace assumed.

Publish pull request dialog

The commit + publish flow: a changed-files summary with add/delete counts, a commit message field with an 'include unstaged' toggle, then PR fields (title, description, base branch, and a Draft switch) once you choose to open a pull request.

Workspace sidebar PR status glyph

A workspace row in the sidebar with a small colored PR indicator and tooltip showing state (Open, Draft, Merged, Closed), check status (passing, pending, failing), review decision, and ahead/behind counts against the base branch.

Info:

"No access to this repository" and "reconnect the GitHub App" are two different problems. The first means your GitHub account can't see the repo at all; the second means Proliferate's authorization to act on your behalf expired but the repo access itself is fine.

For private repositories, confirm both local and cloud environments have access: a private repo you can see on your laptop isn't automatically visible to a cloud sandbox until the GitHub App is granted access to it.