Publishing Changes and Resolving Conflicts
Safely publish committed work when GitHub has newer overlapping changes.
Publishing Changes and Resolving Conflicts
Use Commit & Push when your changes are ready. PhantomWP first records your work in Git, then publishes it to the current GitHub branch. Publishing the default branch may update your live site; publishing another branch keeps the changes as a draft.
When GitHub has newer changes
Most newer GitHub changes combine automatically. If the same part of a text file changed both locally and on GitHub, Commit & Push pauses and offers Resolve conflicts.
A common example is changing the site name or another one-line setting in PhantomWP after GitHub has received a different update to that same line. If the Commit & Push dialog also says No changes to commit, your work may already be safely committed on the machine—the conflict is preventing that saved commit from being published, not erasing it.
The resolver creates an Automatic recovery copy before changing the repository. This is a permanent local recovery point for the committed work you started with. PhantomWP does not automatically delete these copies, even after a successful publish.
The wizard has four steps:
- Protecting your work creates the recovery copy and loads the latest GitHub version.
- Choose what to keep walks through each overlapping change in each supported file.
- Review lets you revisit completed files.
- Publish checks GitHub once more, combines any newer changes, and pushes the result.
For each overlap, choose:
- Keep yours — use Your version.
- Keep GitHub's — use Version on GitHub.
- Keep both — place your content first, followed by GitHub's content.
- Edit result — open the complete draft in the code editor after every overlap has a preset choice.
File-level buttons apply one choice to every overlap in that file. If you change a preset after manually editing the result, PhantomWP asks before regenerating the draft.
If GitHub changes again
Before every push, PhantomWP fetches the branch again. If GitHub advanced while you were reviewing, clean changes are combined automatically. New overlaps return you to Choose what to keep with this message:
GitHub changed again while you were reviewing. There are new overlapping changes to check.
Your original automatic recovery copy remains unchanged across every round. If GitHub keeps changing repeatedly, publishing pauses so you can choose Try publishing again instead of looping forever.
Authentication, permission, or network errors do not discard a completed merge. Fix the connection or access problem, then choose Try publishing again.
Stopping or using the terminal
Choose Stop and restore my saved work to end the resolution and return to the original committed work. The automatic recovery copy remains available under Restore points → Automatic recovery copies.
Open Technical details → Open terminal when you need Git's command line. The wizard minimizes to a persistent Resolution in progress banner, and terminal input remains available. On local Docker image 1.20.0 or newer and managed Codespaces infrastructure 1.38.0 or newer, other file, Git, branch, force-pull, and AI mutations stay locked so they cannot race the resolver. Older local containers cannot enforce this lock and instead show the compatibility-mode warning described below.
Terminal changes are authoritative. When you return, PhantomWP recognizes a merge that was published in the terminal or a merge that was aborted back to the original commit. If the repository is in any other state, automatic actions pause rather than resetting or overwriting it.
Supported files
The guided resolver supports regular UTF-8 text files up to 2 MiB where both versions exist, including multiple overlaps, add/add conflicts, CRLF line endings, and files without a final newline.
Binary files, delete/modify and rename conflicts, symbolic links, file-type changes, submodules, oversized files, and malformed conflict markers require the terminal. If any file is unsupported, PhantomWP restores the entire original committed state; it never partially applies a mixed set.
Local Docker image 1.20.0 or newer provides the strongest protection by locking conflicting Git and file actions inside the workspace runtime. Older local containers use a conservative compatibility mode for simple text conflicts through the existing safe Git commands. While that warning is visible, do not edit elsewhere, run AI actions, use another PhantomWP tab, switch branches, or change the repository in the terminal.
To update the Docker runtime, return to the Dashboard, open the project's menu, and choose Update container. The editor's manual Infrastructure dialog can synchronize project-served helper files, but it does not replace or update the Docker image.
Codespaces users can install managed infrastructure 1.38.0 or newer from the update banner.