概要
ObsidianでGitプラグインを使用してPCとスマホでメモの共有を行っているときに、コンフリクトが発生した。PC上であれば差分を見てコンフリクト解消するか、強制的にプルするかで簡単に解決できるが、Obsidianモバイルのプラグインでは対応できないっぽい
参考記事:[Bug]: Merge Conflicts not supported on mobile?
以下、Androidスマホ上のTermuxを使ってGitコマンドを実行し、コンフリクトを解決する手順をご紹介
前提条件
- Androidスマホ
- Obsidianアプリとリポジトリが設定済み
- GitHubなどのリモートリポジトリと連携済み
詳細手順
1. Termuxのインストールと初期設定
-
Termuxのインストール
- いろいろインストール方法あるらしいですが、Googleplayからのダウンロードは非推奨らしい。F-Droidまたはgithubからのインストールが推奨らしい
-
初回起動時の更新
pkg update
pkg upgrade
2. ストレージへのアクセス許可設定
# ストレージへのアクセス権限を要求
termux-setup-storage
このコマンドを実行すると、アクセス権限関連の設定画面開くのでtermuxアプリ選択して許可しましょう
3. Obsidianのvaultフォルダへ移動
# Obsidianのvaultがある場所まで移動(例)
cd <vault作ったパス>
アプリの保管庫を管理の画面行くとパスを確認できます。
4. Gitのインストール
# Gitをインストール
pkg install git
5. Git認証まわりの設定
# 認証情報を保存する設定
git config --global credential.helper store
# リモート操作時に認証を求められたら
# ユーザー名: GitHubのユーザー名
# パスワード: 生成したPAT(クラシックタイプを使用)
# GitHubのPAT生成手順:
# 1. GitHub > Settings > Developer settings > Personal access tokens > Tokens (classic)
# 2. 「Generate new token (classic)」をクリック
# 3. リポジトリへのアクセス権限(repo)を付与
# 4. トークンを生成してコピー(表示は一度きり)
6. リポジトリの状態確認
# リポジトリの状態を確認
git status
# リモートリポジトリの情報を確認
git remote -v
7. コンフリクト解決方法
方法1: 強制的にリモートの内容を取得(ローカルの変更を破棄)
# リモートの変更を取得
git fetch origin
# ローカルの変更を強制的に破棄してリモートの状態に合わせる
git reset --hard origin/main
方法2: コンフリクトを手動で解決
# プルしてコンフリクトを表示
git pull
# コンフリクトしているファイルを確認
git status
# コンフリクトしているファイルを編集
vi コンフリクトしているファイル.md
# 編集後、変更をステージングして確定
git add .
git commit -m "コンフリクトを解決"
git push
8. Obsidianに戻って確認
コンフリクトが解消されてpushやpullがちゃんとできるか確認
終わりに
最初に載せていたURLの対応方法のやり方がよくわからなかったのでいろいろ手探りで試してました。
今後もコンフリクトチラホラ起きそうなので備忘録として残しておきます。
その内obsidianのgitプラグインでもこの辺うまいことできるようになるといいなぁ。