小説のgit管理 iPhone用メモ

家のサーバーにgitのリモートリポジトリを置いて小説をgit管理しています。

リポジトリは自宅鯖(123.456.789.01)の/home/owner/novel/mynovel.gitにあると想定して記述します。

(もちろんGitHubで非公開のリポジトリを作成してOK、ただしGithubは性的な内容は置けないので注意)

iPhoneで編集したりするので設定メモです。

AndroidでもTermuxなどのLinuxエミュを使えば同様に行えます。(Turmuxの場合aptコマンド、ストレージはtermux-setup-storageコマンドで連携)

続きを読む

iOSでのgit管理

iSH導入

iPhoneにLinuxエミュのiSHをインストールします。

ssh接続

iSHはAlpine Linuxなのでapkコマンドでopensshを追加、さらに~/sshフォルダと空の~/ssh/configファイルを作成

iSH
apk update
apk add openssh
mkdir ssh
echo -n > ssh/config

iPhoneのファイルブラウザでiSH→rootフォルダ→sshフォルダへ移動

Screenshot

先に自宅サーバのssh接続の秘密鍵ファイル(ここではid_mypc)をicloud経由などで端末にコピーしておき、iSH/root/sshフォルダ内に放り込んでおく

さらに端末上のファイルが変更できるタイプのテキストエディタでiSH/root/ssh/configファイルを編集し、ホスト名:mypcで簡単に接続できるよう設定

apk add vimなどでvimやnanoを入れてiSH上から編集してもOK)

iSH/root/ssh/config
Host mypc
    HostName 123.456.789.01 # 自鯖のipアドレス
    Port 22                 # 自鯖のsshポート
    User owner              # 自鯖のユーザ名
    IdentityFile ~/.ssh/id_mypc  # 秘密鍵ファイルの場所

ここまで設定したらsshフォルダを.sshへリネーム(ファイルブラウザからは隠しファイルへアクセスできないため)

iSH
mv ssh/ .ssh/

ファイルの権限を変更

iSH
chmod 600 ~/.ssh/config ~/.ssh/id_mypc

ここまで出来たら下記コマンドでssh接続が出来るかテスト

iSH
ssh mypc

fingerprintを聞かれたらyesにして接続テスト完了 exitコマンドで終了する

git導入

gitのインストールと初期設定を行います。

Bash
apk add git
git config --global user.name "名前"
git config --global user.email "メアド"

ssh接続でリポジトリからgit cloneします。

iSH
git clone ssh://mypc/home/owner/novel/mynovel.git

これで小説の取り込みとファイルブラウザからiSH/root/mynovel/フォルダ以下で小説が編集できるようになりました。

pull,commit→pushを簡略化する

次にgit pullしたり小説を編集したあとコミット&pushするのが手間なのでコマンド化します。

~/pull.sh~/push.shファイルを新規作成します

iSH
echo -n > pull.sh
echo -n > push.sh

iOSのテキストエディタかvimなどで編集します

~/pull.sh
#!/bin/sh

cd /root/mynovel
git pull
cd ../
~/push.sh
#!/bin/sh

cd /root/mynovel
git add -A
git commit -m "iOS"
git push
cd ../

権限を付与

iSH
chmod +x pull.sh push.sh

上記でコミットコメント「iOS」で毎回コミットする設定になります。

これらをコマンド化します。iSHで下記コマンドを実行

iSH
echo 'alias pull="$HOME/pull.sh"' >> ~/.profile
echo 'alias push="$HOME/push.sh"' >> ~/.profile
. ~/.profile

これでPCで小説を編集した後はiSH上でpullと打つとgit pull出来て端末上に最新ファイルを同期でき、iPhoneで小説を編集した後iSH上でpushコマンドを打つだけでリモートリポジトリへコミット&pushができるようになります。

・PCなどで小説を編集しpushしたあと→iSHでpull

・iPhoneで小説を編集したあと→iSHでpush

お疲れさまでした!

競合が発生したときはgit diff --name-only --diff-filter=Uとかで手動解決してるかも

iPhoneでの小説執筆テキストエディタ

git管理するにはファイルブラウザでiSH上のファイルを編集できないといけないので、いくつか挙げておきます。

koder 無料コード用簡易エディタ。行番号さえ消せたらこれで書きたかったかも

LiquidLogic コードエディタの中では使いやすい部類の印象

Runestone コードエディタ。テーマが変えやすいかも

iA Writer 3000円買い切りアプリですが、今のところ無駄なアイコンなどがなく一番集中して使いやすいのでこれを使用しています。小説を.mdファイル(マーウダウン形式)として作成しておくと見出しもつけられて便利です。最初に設定→エディタ→インデントで「折り返しインデントに含む:ホワイトスペース」をオフにしておかないと段落の字下げが変になるのでここ設定おすすめ。

Git,小説,Linux