> ## Documentation Index
> Fetch the complete documentation index at: https://forest-chore-open-api.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# forest push

> Push layout changes from your current branch to its origin environment

# forest push

Push the layout changes of your current branch to its origin environment. This applies your branch's UI changes to a remote environment (such as staging), making them visible to users of that environment.

## Usage

```bash theme={null}
forest push [options]
```

## Options

| Option            | Description                      |
| ----------------- | -------------------------------- |
| `--force`         | Skip push confirmation           |
| `-p, --projectId` | The ID of the project to push to |
| `--help`          | Display usage information        |

## How it works

When you run `forest push`, your branch's layout changes (noted Δ) are applied to the branch's **origin environment**:

```
my-branch (Δ) ──push──► Staging (origin)
```

The layout changes are moved from your branch to the origin environment. Other users of that environment will immediately see the updated layout.

<Warning>
  Pushing your branch to its origin environment will **delete the branch** automatically. Make sure your changes are ready before pushing.
</Warning>

## Pushing changes

Run `forest push` from your project directory:

```bash theme={null}
$ forest push
? Push branch my-current-branch onto Staging (Y|n): Y
✅ Push successful.
```

You will be prompted to confirm before the push is applied. To skip the confirmation:

```bash theme={null}
forest push --force
```

## Push vs. deploy

`forest push` and `forest deploy` are distinct commands with different purposes:

| Command         | Target                                    | Effect                                                             |
| --------------- | ----------------------------------------- | ------------------------------------------------------------------ |
| `forest push`   | Non-reference environments (e.g. staging) | Applies layout changes to a remote environment; deletes the branch |
| `forest deploy` | Reference environment (e.g. production)   | Permanently applies layout changes to production                   |

<Warning>
  You cannot `push` to the Production (reference) environment. Use [`forest deploy`](/reference/cli/deploy) for production changes.
</Warning>

## Pushing from the UI

You can also push layout changes directly from the Forest UI. When a remote environment has unpushed changes, a banner appears at the top with a **"Push to …"** link.

<Info>
  Push from the UI is only available for remote environments whose origin is **not** the reference environment.
</Info>

## Examples

```bash theme={null}
# Push with confirmation prompt
forest push

# Push without confirmation
forest push --force

# Push in a specific project
forest push --projectId 42
```
