スマホからコードをコミットする方法:差分を確認し、ステージして、安全にコミット
リモートデスクトップを使わずに、差分をレビューし、意図したものだけをステージして、安全にコミットするスマホ中心のワークフロー。
- CLI
- 0.2.17
- プレビュー ref
- a2c45c8
注: 機能マトリクス では、Git の書き込み操作(commit、push、pull)は 実験的 とされています。読み取り専用の操作(diff、log、status)は安定しています。書き込み操作は、挙動が変わる可能性があることを理解したうえで使ってください。
ちょうどノート PC の前にいないときに、「あとはきれいなコミットをひとつするだけ」という状態になるのはよくあることです。
たいていは小さなことです。エージェントのセッションが終わり、ついでの修正がいくつかあって、なぜそのファイルを変えたのかを忘れる前に、きれいな基準点を確定させておきたい。
スマホでの目的は、凝った Git 操作ではありません。短いループです。
差分をレビュー → 意図したものだけステージ → きちんとしたメッセージを書く → コミット →(必要なら)push
このループを、リモートデスクトップを 使わずに、スマホを小さなターミナルにもせずに回すのが目的です。
要点(ワークフロー)
手短に言うと:
- 自分の条件に合う方法を決める:
- ターミナルを完全に操作する(SSH/tmux)
- PR のみでレビューする(GitHub)
- リポジトリがある場所で動く、スマホ向けの UI を使う
- Happier を使う場合は、リポジトリがあるマシンでセットアップします(そしてスマホを接続します)。まずは:スマホから Happier を使う方法
- スマホでセッションを開き、バージョン管理(Source control)を確認します。
- ステージする前に レビュー(Review)で差分を読みます。
- まとまりのあるものだけをステージします。
- コミットメッセージを書きます(下書きを生成してから編集しても構いません)。
- コミットします。
- リポジトリの状態がきれいなとき(コンフリクトなし、upstream より遅れていない、detached でない)だけ push します。
「スマホからコミットする」とは実際にどういうことか
コミットは リポジトリの作業ツリーがある場所(ノート PC、サーバー、開発マシン)で行う必要があります。ですから問題は「スマホで git が動くか?」ではなく、次の点です。
- スマホからリポジトリを レビューして操作 できるか
- 実際の git 操作は、ワークスペースを所有するマシンで実行されるか
Happier はこのワークフローを前提に作られています。「レビュー / ステージ / コミット」のループはスマホで回し、リポジトリと Git はワークスペースを所有するマシンに置いたままにします。
この方法が合う場合と合わない場合
このワークフローが合うのは:
自分が管理するマシン(ノート PC、サーバー、開発マシン)にリポジトリがあり、差分レビュー、ステージ、コミットのための慎重な画面がほしい場合です。また、Git の書き込み操作 が機能トグルの後ろにある(実験的とされている場合もある)ことを受け入れられる場合です。
合わないのは:
履歴の書き換え(rebase、reset、cherry-pick)が必要な場合、コンフリクトの途中にいる場合、リポジトリを所有するマシンにそもそも到達できない場合です。そういうときは本物のターミナルに戻りましょう。
よくある方法とそのトレードオフ
よくある選択肢:
- SSH + tmux:動きますが、スマホでは差分レビューやステージを急ぎがちです。
- リモートデスクトップ:単発の緊急時には使えますが、モバイルでは重く、誤タップしやすい方法です。
- GitHub モバイル:作業がすでに PR になっていれば便利ですが、マシン上のコミットされていない状態には役立ちません。
合うのは「スマホ版の GitHub Desktop」に近いもので、しかも リポジトリがある場所でそのまま動く(クラウド上の 2 つ目のコピーではない)ものです。
- Happier:Claude Code、Codex などのエージェントをクロスデバイスで実行・オーケストレーションできるオープンソースのアプリです。リポジトリと Git は自分のマシンに置いたまま、スマホから差分をレビューし、意図したものだけをステージしてコミットできます。 トレードオフ:マシンやデーモンに到達できることが前提です。
Happier を初めて使う場合(概要と入手方法)
Happier を見たことがない方へ:Claude Code、Codex、OpenCode などの AI コーディングエージェント向けの オープンソースのコンパニオンアプリ(モバイル / Web / デスクトップ)です。
ここでのワークフローは、セッション(とリポジトリや Git)はワークスペースを所有するマシン(ノート PC、サーバー、開発マシン)に置いたまま、Happier を使ってスマホから差分のレビュー、ステージ、コミットを行うというものです。
このガイドでいえば、仕上げの「レビュー + ステージ + コミット」を、リモートデスクトップなしでモバイルから行えるということです。
セットアップ:
- スマホから Happier を使う方法
- GitHub: https://github.com/happier-dev/happier
- インストール / ダウンロード: https://github.com/happier-dev/happier#how-it-works
- Discord(コミュニティとサポート): https://discord.gg/W6Pb8KuHfg
前提条件
必要なもの:
- リポジトリがあるマシンに接続された Happier のセッション。
- リポジトリやファイルにアクセスできること(これらの画面は、マシン側のワークスペース API に到達できるときだけ実際のデータを表示できます)。
Git の書き込み操作を有効にする(重要)
デフォルトでは、Happier のリポジトリの閲覧と差分レビューは使えますが、Git の書き込み操作(stage/unstage/commit/pull/push など)は機能トグルの後ろにあります。
- 設定(Settings)→ 機能(Features)→ Git operations に進む
- 有効にする(実験的な機能として扱ってください)
Git operations を有効にしなくても、同じワークフローで 変更のレビュー はできます。その場合、コミットはターミナルで仕上げます。
手順:スマホからコードをコミットする
UI の正確なレイアウトはデスクトップとモバイルで異なります。スマホサイズの画面では、デスクトップのサイドバーを小さな画面に押し込むより、「一度にひとつのこと」に集中した画面のほうが使いやすくなります。
1) バージョン管理を開く
セッションの画面で:
- バージョン管理(Source control)を開く(リポジトリの状態を表示する画面)
次のものが表示されるはずです:
- 現在のブランチの概要
- 変更ファイルの一覧(
A、M、Dなどのステータスつき) - 利用できる場合は追加 / 削除の行数
リポジトリの状態がまったく表示されない場合は、トラブルシューティング に進んでください。
0.2.12 以降、レビューの中でコミットに含めるファイルを正確に選べるようになり、ワークスペースの残りも表示したままにできます。エージェントが触った他のものを巻き込まずに、自分の修正だけをコミットできます。
2) ステージする前に差分をレビューする
何かをステージする前に、ざっと目を通します:
- レビュー(Review)画面を開き、コミットされていない差分をひと続きのレビューとしてスクロールする。
- 確認が終わったファイルは折りたたむ。
- 直したいファイルがあればエディタで開いて編集し、レビューに戻る。
スマホでは、生のターミナルより、差分とレビュー専用の UI のほうが位置を見失いにくくなります。
3) 意図したものだけをステージする
変更ファイルの一覧からできること:
- ファイル単位でステージ / ステージ解除する
- (対応している場合)選んだ行やハンクをステージする
スマホからコミットするときは、いつも以上にステージの規律が大切です。デフォルトのルールとしておすすめなのは:
- ひとつのまとまった変更 に属するファイルだけをステージする
- ついでのフォーマット修正、デバッグログ、無関係な編集は別のコミットにする
4) コミットメッセージを書く(下書きを生成しても可)
バージョン管理の画面の下部に、Happier のコミット入力欄があります。
自分でメッセージを入力するか、Generate commit message で下書きを作れます。
大事な点:
- 生成されるのは文案だけで、自動でコミットはされません
- バックエンドや指示は 設定(Settings)→ バージョン管理(Source Control)で設定できます
生成機能を使う場合も、オートコンプリートと同じように扱いましょう。ステージした差分に目を通し、実際に ステージした内容に合わせてメッセージを直します。
5) コミットする
ステージした変更をコミットします。
Happier が操作をブロックした場合、たいていはリポジトリが UI からの自動操作には安全でない状態(コンフリクト、detached HEAD など)にあるためです。これは意図された動作です。
6) push する(任意):安全のための制限を理解する
スマホから push する場合は、慎重な安全制限があると考えてください。この方針は意図的なものです。小さな画面から履歴を書き換えさせるより、危険な push を拒否する方向に倒しています。
ぶつかる可能性のあるルールの例:
- pull は fast-forward のみ
HEADが detached のときは push/pull/revert がブロックされる- ローカルが upstream より遅れているときは push がブロックされる
- コンフリクトがある間は push/pull/revert がブロックされる
ブロックされたら、たいていは次のどちらかをするタイミングです:
- 本物のターミナルでリポジトリの状態を直す
- 先にブランチを切り替える / 片付ける / コンフリクトを解決する
AI コーディングセッション(Claude/Codex など)向けの実践的なワークフロー
「スマホからコミットしたい」のがエージェントのセッションを動かしているからなら、うまく回るスマホ中心のループは次のとおりです:
- エージェントが変えた内容を レビュー で確認する
- 組み込みのエディタで小さな編集をする(命名を直す、誤って作られたファイルを消す)
- 簡潔なメッセージでコミットする
- エージェントに追加の指示を送る(「このきれいな基準点から続けて」)
地味ですが便利な習慣がひとつあります。パスを手で説明する代わりに、入力欄の ファイルをリンク(Link file)やファイル閲覧のツールを使って、正確な ファイルを次のプロンプトに添付しましょう。
添付ファイルとプロジェクトのファイル(間違ったものをコミットしない)
Happier はセッションのワークフローとして 添付ファイル に対応しています。添付ファイルが向いているのは:
- ログを貼り付ける
- 単発のファイルを共有する
- モデルに読ませる成果物を送る
ただし、添付ファイルはコミットするつもりのプロジェクトのファイルとは別物です。
「これは git に入れるべきもの」なら、一時的な添付ファイルではなく、ファイル(Files)からワークスペースに置きましょう(作成 / アップロード / 編集)。
トラブルシューティング
スマホでバージョン管理や差分が表示されない
よくある原因:
- リポジトリを所有するマシンやデーモンに到達できない。
- マシンと同じサーバーやリレーに接続していない。
セッションが非アクティブでもマシンがオンラインなら、Happier はマシン側のワークスペース API を通じてリポジトリやファイルのデータを読み込めます。ただし、そのマシンに実際に到達できる場合に限ります。
ステージやコミットのボタンがない
Git の書き込み操作はトグルの後ろにあります:
- 設定(Settings)→ 機能(Features)→ Git operations
Happier で push/pull/commit ができない
たいていは、リポジトリの安全ルールが働いているだけです。よくあるブロック要因:
- コンフリクトがある
- detached
HEAD - ブランチが upstream より遅れている
本物のターミナルでリポジトリの状態を解決してから、スマホのワークフローに戻りましょう。
差分はレビューできるのにコミットできない
読み取り専用のリポジトリデータは使えても、書き込み操作が無効(機能トグルがオフ)か、リポジトリの状態によってブロックされている場合に起こります。
その場合の実践的なワークフローは:
- 差分のレビューと片付けはスマホで行う
- 実際のコミットや push は、ノート PC に戻ったときにターミナルで仕上げる
よくある質問
iPhone や Android のスマホでもできますか?
はい。主な違いは操作性です。
- スマホでは、Happier はデスクトップの複数ペインのレイアウトではなく、集中した画面(一覧 → 詳細)を使います。
- iOS や Android では、差分のレビューとステージはモバイルで行い、コンフリクトの解決はあとで本物のターミナルで行うほうがよい場合もあります。
差分はレビューできるのに、ステージやコミットができないのはなぜですか?
よくある理由は 2 つです:
- Git の書き込み操作が有効になっていない。 設定(Settings)→ 機能(Features)→ Git operations を有効にしてください。
- リポジトリが、書き込み操作を意図的にブロックする状態(コンフリクト、detached
HEADなど)にある。
push がブロックされるのはなぜですか?
Happier は意図的に慎重な設計になっています。push は通常、次の場合にブロックされます:
HEADが detached- ローカルのブランチが upstream より遅れている
- コンフリクトがある
その場合、スマホのワークフローは「レビュー + ステージ + コミット」までと考えましょう。push は、本物のターミナルでリポジトリの状態を片付けてから行います。
スマホから push しなければいけませんか?
いいえ。次のような「スマホ中心」のワークフローも十分に妥当です:
- 差分をレビューする
- 意図したものだけをステージする
- コミットする
そして push は、ノート PC に戻ったとき(またはターミナルで軽く確認できるとき)にあとで行います。
マシンやデーモンに到達できない場合は?
その場合、リポジトリからバージョン管理の状態を読み込めません。選択肢は:
- マシンに再び到達できるまで待つ
- SSH やリモートデスクトップに戻る
Happier はネットワークやマシンの可用性の問題をなくすわけではありません。マシンに到達できるときに、スマホからワークフローを進めやすくするだけです。
関連ガイド
次のステップ
- 主な悩みがコードレビューなら、スマホから差分(diff)をレビューする方法 から始めるのがおすすめです(コミットとは少し違う流れです)。
- 同じところで何度もつまずく(コミットや push のボタンがない、リポジトリに到達できないなど)なら、自分用の小さなチェックリストにまとめましょう。毎回 10 分ほど節約できます。