見出し画像

a-shellでiPhoneからGitHubを利用する

こんにちは、最近全く投稿していませんでしたが、今回は自分の備忘録ではありますが、もしかしたらこの記事を読んだ誰かの役に立つだろうと思ったので投稿します。

みなさんはiPhoneでGitもしくはGitHub使えたらなーって思うことはありませんか。
僕はずっと思っていました。
今回はそれを無料で実現できる神アプリがあって実際にGitでリモートにpushしたりリモートからpullすることができたので共有したいと思います。

Pythonista3を持っている方ならPythonista3で編集してそのままa-shellを使ってGitHubに pushすることができるので隙間時間に少し編集したい!という時や要修正だけどパソコン開くのちょっとだるい!という時にとても便利です。
是非読み進めて快適な作業を手に入れてください。

a-shellをインストール

まず初めにiOSアプリのa-shellをインストールします。
黄色のアイコンで黒い線で渦を描いたようなマークのやつです。

a-shellは、その名の通りシェルターミナルです。
黒い画面のやつですね。

インストールしたら、アプリを起動します。

起動したらDocumentsというディレクトリに居ると思うのですが、このDocumentsディレクトリがホームディレクトリになります。

ホームディレクトリとはあなたが作業する時の基点になるようなフォルダですね。

初期状態だとDocumentsディレクトリには何もファイルなどがありません。
まずはGitを使えるようにしたいので以下のコマンドでGitをインストールします。

[Documents] $ pkg install git

pkgはa-shell専用のパッケージマネージャになっていて他にもインストールできるようになっているみたいです。
Gitがインストールできたら次にGitHubに接続するためにssh-keygenで秘密鍵と公開鍵のペアを作りましょう。

[Documents] $ ssh-keygen -t ed25519 -C "your_email@example.com"

鍵の保存先を聞かれたりパスフレーズを聞かれたりしますが、基本的に鍵の保存先はそのままエンターを押しましょう。
パスフレーズは必要無かったらそのままエンターを押しましょう。

ちなみに今回はどちらも何も入力せずにエンターを押しました。
パスフレーズは2回聞かれますがそれもそのままエンターしましょう。

鍵のペアが作成できたら公開鍵をコピーします。

[Documents] $ cat .ssh/id_ed25519.pub | pbcopy

pbcopyはペーストボードにコピーするというコマンドで、catで公開鍵の内容を出力するのをパイプで繋いでペーストボードに出力しています。

GitHubのあなたの設定ページで「SSH and GPG keys」のところで「New SSH key」をクリックして先ほどのペーストボードにコピーした公開鍵をペーストして登録しましょう。

登録ができたら次にGitの設定をします。
lg2というコマンドを使って設定していきます。

lg2というコマンドを使って説明をしていますが、その後lg2を全てgitコマンドに置き換えてやってみても同じ結果になることが分かったのでgitコマンドの方が馴染みがあって分かりやすいかもしれません。
ここから先のlg2コマンドをgitコマンドに置き換えて読んでいただいても大丈夫です。

まずは公開鍵のパスを設定します。

[Documents] $ lg2 config user.IdentityFile '/var/mobile/Containers/Data/Application/[この部分は環境によって違うかも]/Documents/.ssh/id_ed25519'

この/var/mobile/なんちゃらかんちゃら〜の部分のパスが分からなかったら一度pwdコマンドを使って確認しましょう。
オプションの-Pを付けると絶対パスを確認できます。
されにそれを以下のようにペーストボードにコピーしてその後ペーストすると楽ですね。
以下のコマンドはpwd -Pでの出力をパイプという機能を使ってpbcopy(ペーストボードコピー)というコマンドに渡しています。

[Documents] $ pwd -P | pbcopy

次にパスワードの設定をします。

[Documents] $ lg2 config user.password ""

パスワードは空文字で構いません。

これでGitHubに接続テストしてみましょう。

[Documents] $ ssh -T git@github.com

これで以下のような出力があれば無事に接続できています。

Hi <your-user-name>! You've successfully authenticat
ed, but GitHub does not provide shell access.

これでGitHubから自分のプライベートリポジトリをクローンできる状態になりました。

試しに何かクローンしてみてください。

[Documents] $ git clone git@github.com:<your-user-name>/<your-repositoryname>.git

これでDocumentsディレクトリ配下に「<your-repository-name>.git」というディレクトリが新たに追加されていると思います。

次に、Pythonista3との連携ですが、Pythonista3を開いてThisPhoneとかiCloudとかの項目がある1番トップの画面を開いて、ExternalFilesというところにフォルダマークが描いてある「Open...」という部分があると思います。
そのOpen...をタップして「Folder...」をタップするとiPhoneのファイルアプリに保存されているフォルダを選択できるようになります。

ここにa-shellのフォルダがあると思うので、その中にある先ほどクローンしたフォルダを選択します。
選択すると右上に「開く」というボタンがあると思うのでそれをタップするとそのフォルダがPythonista3で編集できるようになります。

ここまでの作業が終わると、Pythonista3で編集をして、a-shellでGitHubに pushする事が可能になります。

最後に、githubにpushする為にユーザー情報を登録します。(これはGitに登録するので一度だけでいいです)
またlg2コマンドを使います。

lg2 config user.name '<your-user-name>'
lg2 config user.email '<your-email-address>'

登録ができたらpushしましょう。

git add .
git commit -m '<Changed>'
git push

origin mainなど指定してのpushは何故かエラーが出てしまうのでできませんでした。

以上でこの記事は終わりになります。
ちょっとした隙間時間にコードを修正したくなった時にスマホで修正出来るので、大変重宝すると思い共有しました。
この記事が誰かの役に立てば良いなと思っています。

最後まで読んでいただきありがとうございました。

いいなと思ったら応援しよう!