---
page_title: 'Command: state push'
description: The `terraform state push` command pushes items to the Terraform state.
---

# Command: state push

The `terraform state push` command is used to manually upload a local
state file to [remote state](/language/state/remote). This command also
works with local state.

This command should rarely be used. It is meant only as a utility in case
manual intervention is necessary with the remote state.

## Usage

Usage: `terraform state push [options] PATH`

This command pushes the state specified by PATH to the currently
configured [backend](/language/settings/backends/configuration).

If PATH is "-" then the state data to push is read from stdin. This data
is loaded completely into memory and verified prior to being written to
the destination state.

-> **Note:** Terraform state files must be in UTF-8 format without a byte order mark (BOM). For PowerShell on Windows, use `Set-Content` to automatically encode files in UTF-8 format. For example, run `terraform state push | sc terraform.tfstate`.

Terraform will perform a number of safety checks to prevent you from
making changes that appear to be unsafe:

- **Differing lineage**: If the "lineage" value in the state differs,
  Terraform will not allow you to push the state. A differing lineage
  suggests that the states are completely different and you may lose
  data.

- **Higher remote serial**: If the "serial" value in the destination state
  is higher than the state being pushed, Terraform will prevent the push.
  A higher serial suggests that data is in the destination state that isn't
  accounted for in the local state being pushed.

Both of these safety checks can be disabled with the `-force` flag.
**This is not recommended.** If you disable the safety checks and are
pushing state, the destination state will be overwritten.

For configurations using the [Terraform Cloud CLI integration](/cli/cloud) or the [`remote` backend](/language/settings/backends/remote)
only, `terraform state push`
also accepts the option
[`-ignore-remote-version`](/cli/cloud/command-line-arguments#ignore-remote-version).
