> ## Documentation Index
> Fetch the complete documentation index at: https://docs.squarecloud.app/llms.txt
> Use this file to discover all available pages before exploring further.

# CLI でアプリをアップロード・更新する

> squarecloud upload でフォルダを新しいアプリとしてデプロイし、squarecloud commit で変更を送信、squarecloud zip で zip の中身を確認します。

* **`upload`** は、新しい ID を持つ**新しい**アプリケーションを作成します。
* **`commit`** は、**既存の**アプリケーションにファイルを送信し、その ID、ドメイン、設定を維持します。
* **`zip`** は、同じ zip を送信せずにローカルで作成するため、何が含まれるかを確認できます。

`upload` と `commit` は `squarecloud app` の下にもあります（`squarecloud app upload`、`squarecloud app commit`）。初めての方は[クイックスタート](/ja/cli-reference/quickstart)から始めてください。

## zip に含まれるもの

`upload`、`commit`、`zip` は現在のフォルダを zip にまとめ、プロジェクトのルートにある [`squarecloud.ignore`](/ja/getting-started/squarecloud-ignore) に記載されたものを除外します。このファイルは `.gitignore` の構文を使い、[VS Code 拡張機能](/ja/vscode-extension/features#除外ルール)が読み込むものと同じファイルです。

* **常に最初に除外されるもの:** `node_modules`、`.git`、`.github`、`.vscode`、`package-lock.json`、`pnpm-lock.yaml`、`yarn.lock`。依存関係はマニフェストをもとにプラットフォーム上でインストールされます。バージョンを固定する必要があってロックファイルを送信したい場合は、`!package-lock.json` のような `!` ルールを追加してください。
* **リンク:** ファイルへのシンボリックリンクはそのファイルとして zip に含まれます。フォルダへのリンクや壊れたリンクはスキップされ、stderr にその旨が表示されます。
* **古いファイル名**（`.squareignore`、`.squarecloudignore`、`square.ignore`）も、`squarecloud.ignore` がない場合は読み込まれます。その際、ファイル名を変更するよう警告が表示されます。

## `squarecloud upload`

```bash 使い方 theme={"system"}
squarecloud upload [--file <path>] [--json]
```

現在のフォルダを zip にまとめ、そこから新しいアプリケーションを作成します。フォルダには [`squarecloud.app` または `squarecloud.config`](/ja/getting-started/config-file) ファイルが必要です。

| フラグ | 説明 |
| - | - |
| `--file <path>` | 現在のフォルダを zip にする代わりに、手元にある zip をアップロードします。相対パスと絶対パスのどちらも使えます。 |

```bash theme={"system"}
squarecloud upload
# Zips the current folder and deploys it as a new application.
```

```bash theme={"system"}
squarecloud upload --file ./build/my-app.zip
# Uploads an existing zip.
```

```bash 出力 theme={"system"}
Compressing the current directory.
Uploading the zip file to Square Cloud.

✓ Application uploaded to Square Cloud!
  Open it at https://squarecloud.app/dashboard/applications/<appID>
```

アップロードに成功すると、CLI は現在のフォルダの設定ファイルに `ID=<appID>` を書き込みます。これにより、以降のコマンドはどのアプリを指しているかを判断できます。[アプリ ID の保存場所](/ja/cli-reference/quickstart#アプリ-id-の保存場所)を参照してください。

`--json` を付けると、stdout には作成されたアプリケーション（ID、名前、説明、ドメイン、クラスター、メモリ、CPU、言語）だけが JSON で出力され、進行状況のメッセージは stderr に出力されます。

## `squarecloud commit`

```bash 使い方 theme={"system"}
squarecloud commit [appID] [--file <path>] [--path <dir>] [-r]
```

**エイリアス:** `squarecloud push`、`squarecloud app commit`、`squarecloud app push`

現在のフォルダを zip にまとめ、既存のアプリケーションに送信します。ID は引数、または設定ファイルの `ID=` 行から取得されます。ほかのコマンドと異なり、`commit` は選択画面を開きません。どちらもない場合は、終了コード 1 で停止します。

| フラグ | 説明 |
| - | - |
| `--file <path>` | 現在のフォルダの代わりに 1 つのファイルを送信します。zip はアプリケーション内で展開され、それ以外のファイルはそのファイル名で書き込まれます。相対パスと絶対パスのどちらも使えます。 |
| `--path <dir>` | アプリケーションのルートではなく、指定したフォルダにコミットします。 |
| `-r`、`--restart` | コミット後にアプリケーションを再起動します。 |

```bash theme={"system"}
squarecloud commit
# Sends the current folder to the app in the ID= line.
```

```bash theme={"system"}
squarecloud commit <appID> --restart
# Sends the current folder to a specific app, then restarts it.
```

```bash theme={"system"}
squarecloud commit --file ./config.json --path settings
# Sends one file into the settings folder of the app.
```

```bash 出力 theme={"system"}
Compressing the current directory.
Committing to your application (<appID>)...
Committed to your application.
```

大きなコミットがタイムアウトで打ち切られることはありません。`commit` には JSON 出力はありません。

## `squarecloud zip`

```bash 使い方 theme={"system"}
squarecloud zip
```

`upload` や `commit` と同じ方法で現在のフォルダを zip にまとめ、そのフォルダ内に `<folder name>.zip` として保存します。同じ名前のファイルがある場合は置き換えます。ログインは不要です。

```bash 出力 theme={"system"}
✓ Your project was zipped to <folder name>
```

zip を書き込めない場合、CLI は理由とともに `Couldn't zip your application.` と表示します。古い `<folder name>.zip` を削除できない場合も、その旨が表示されます。どちらも終了コード 1 で終了します。

## 関連項目

| コマンド | API | JavaScript SDK | VS Code |
| - | - | - | - |
| `upload` | [`POST /v2/apps`](/ja/api-reference/endpoint/apps/upload) | [`api.apps.create()`](/ja/sdks/js/commit_and_upload) | [新しいアプリケーションをアップロード](/ja/vscode-extension/features#新しいアプリケーションをアップロードする) |
| `commit` | [`POST /v2/apps/{app_id}/commit`](/ja/api-reference/endpoint/apps/commit) | [`api.apps.commit()`](/ja/sdks/js/commit_and_upload) | [コミット](/ja/vscode-extension/features#既存のアプリケーションに変更をコミットする) |

push のたびにデプロイしたい場合は、[GitHub デプロイ](/ja/cli-reference/github-deploys)を参照してください。
