(2026/6/30修正:
Working Copy同期エラー『Unable to push…』や『uncommitted changes…』の原因と手動マージの解決手順を追記しました)
ObsidianをPCとiPhoneで同期させる環境を構築したはずなのに、エラーが出ていませんか?
「画面いっぱいに英語のエラーメッセージが表示されてしまう」
「同期しようとすると、よくわからないエラーで拒否される」
こんな経験はありませんか? 実は私もこれで最近ずっと悩まされていました。
ただこの問題の解決のめどが立ったのでまとめておこうと思います
この記事では、Obsidian同期自動化ガイド の設定後に発生しやすい、同期トラブルの解決策を解説します。 参考になれば幸いです。
目次
- トラブル1:履歴のズレ
- トラブル2:設定同期によるエラーと暴走
- まとめ
トラブル1:履歴のズレ
現象
iPhoneでGitHubへ変更を送信(Push)または取得(Pull)する際、同期のズレによってエラーが発生することがあります。エラーのタイプ(現象A・現象B)によって、それぞれ原因と対処法が異なります。
【現象A】Push時に失敗する
Unable to push changes, that couldn't be fast-forwarded. you need to fetch & merge changes from remote before pushingまたはTap to merge in changes from origin and retry push
◆ 原因:リモートの履歴が進んでいる(履歴の枝分かれ)
PCなど他の端末で加えた変更がすでにGitHub(リモート)に送信されている一方で、iPhone側でも変更を加えてコミットしたため、履歴が別々に進んで(枝分かれして)しまったことが原因です。 特に、iOSショートカットの「閉じたとき」のアクションで、Push が Commit より先(順番が逆)になっていると、変更が正常にプッシュされず、後々このエラーを引き起こす引き金になります。
◆ 解決策:Working Copyでのマージとプッシュの再試行
- Working Copyアプリを開きます。
- 画面に表示されている 「Tap to merge in changes from origin and retry push」 というエラーメッセージをタップします。
- アプリが自動的にリモートから最新の変更をダウンロードしてマージし、再度プッシュを試みます。
- 競合(コンフリクト)がない場合: 自動でマージとプッシュが完了し、同期が正常に戻ります。
- 競合がある場合: 競合している箇所を修正する画面(マージエディタ)が開くので、残したい行を選んで解決し、完了後にプッシュします。
(※具体的なマージ操作は、こちらの競合解決ガイド にて詳しく解説しています)
【現象B】Pull時に失敗する
Fetched new commits from origin, but the pull was aborted because your uncommitted changes conflict with the fetched changes. Your modifications have been preserved. Commit or revert them before pulling again
◆ 原因:未コミットの変更がある状態でのプル
iPhone側でファイルを書き換えたものの、まだコミット(Gitへの保存確定)していない変更が存在し、そのファイルがリモートの最新の変更内容と衝突しているためです。 特に、Obsidianを起動した際、オートメーションによるPull処理が完了する(数秒かかります)前に文字を入力して自動保存が走ってしまうと、この「未コミットの変更がある状態」になり同期がブロックされます。
◆ 解決策:未コミット変更の処理(コミットまたは破棄)
このエラーを解消するためには、まずiPhone側で書き換えた内容を「残す」か「捨てる」かを選択します。
- iPhone側の変更を残したい場合(コミットする): Working Copyアプリを開き、変更のあるファイルを一旦 「Commit(コミット)」 します。これで安全に履歴に保存されます。コミット完了後、改めて 「Pull(プル)」 を実行します。
- iPhone側の変更を消して、リモートの最新版で上書きしたい場合(破棄する): 変更ファイルを長押し、あるいはメニューから 「Revert(元に戻す / 変更を破棄)」 します。その後、改めて 「Pull(プル)」 を実行します。
根本的な予防策
これらの同期エラーを自動化によって根本から防ぐための設定手順は、Obsidian同期自動化ガイド の「STEP5」および「起動時の同期漏れを防ぐ対策」を参照して、ショートカットの設定を見直してください。
トラブル2:設定同期によるエラーと暴走
PCとiPhoneで設定を同期してしまうことで起きるトラブルです。
現象は2通りありますが、原因と根本的な解決策は共通しています。
現象1:謎のSSHエラー
iPhoneでObsidianを開くと、英語のエラーが表示されます。 unrecognized transport protocol: "ssh" というメッセージです。 これが1分おきに表示され、作業に集中できません。
現象2:自動同期の暴走
iPhoneでGitプラグインをオフにしても、いつの間にか有効化されます。
iPhoneを開くたびに勝手に同期が走り、エラーになります。
原因:設定ファイル(.obsidian)が同期されている
PCの設定ファイルが、GitHub経由でiPhoneに上書きされるためです。
PC側でGitプラグインと自動Pushを有効にしていると、その設定がiPhoneにコピーされます。
結果として、iPhone側でSSHエラーや自動同期の暴走が発生します。
解決策:設定フォルダをデバイスごとに分離する
PCとiPhoneで設定フォルダを分離します。 これが最もスマートな根本解決策です。
- iPhoneのObsidianで「設定」を開く
- 「ファイルとリンク」を選択する
- 「設定フォルダの優先を切り替える」に
.obsidian.mobileと入力する - Obsidianアプリを再起動する
これでiPhone専用の設定フォルダが作成され、PCの設定と同期されなくなります。
メリット:環境の完全分離
設定フォルダを分けることで、以下のメリットがあります。
- プラグインの分離: PCだけでGitプラグインを使い、iPhoneでは使わない構成にできます。
- UI設定の分離: iPhoneは文字を大きくし、PCは二段組にするなど、個別にカスタマイズできます。
まとめ
ObsidianのGit同期エラーは、以下の2つのアプローチで解決できます。
- 履歴のズレ(トラブル1): Working Copyで
Mergeを行う - 設定同期の不具合(トラブル2): iPhoneの設定フォルダを
.obsidian.mobileに分離する
これで解決できます。


コメント