GitHub Desktopが使いにくいと感じたら|画面と端末の分担を決める
GitHub Desktopが使いにくい、と感じる瞬間には共通の形がある。コミットまでは指が動くのに、その先の作業でメニューを探し始め、結局ターミナルを開いて打ち直している。この記事では、その引っかかりが道具の出来によるものなのか、画面とコマンドの分担が決まっていないことによるものなのかを切り分けて、次にどちらを変えればよいかを判断できるようにする。
使いにくいと言われる場面は、だいたい3つに分かれる
同じ「使いにくい」という言葉でも、中身は3つに割れる。1つ目は、用語が分からないという段階の詰まりである。ステージ、コミット、プッシュ、プルリクエストという順番が頭に入っていない状態では、どのボタンを押せばよいかが決まらない。2つ目は、やりたい操作が画面に出ていないという詰まりである。特定の履歴だけを取り消す、変更を一時的に退避させる、ファイル単位ではなく行単位で選んで記録する、といった作業は、メニューのどこにあるかを覚えるまでは探す時間のほうが長い。3つ目は、画面では足りるのに、別の窓で動かしている作業と噛み合わないという詰まりである。
3つ目が一番やっかいで、道具を乗り換えても直らない。エディタで書き、フォルダでファイルを探し、ターミナルでビルドを回し、その合間に履歴を記録する。作業そのものは1つなのに、窓が4枚に分かれている。1回の切り替えは1秒でも、1日に200回起きれば、体感としてはずっと道具に待たされていることになる。使いにくさの正体が3つ目にある場合、必要なのは別のGitクライアントではなく、窓の枚数を減らす決めごとである。
GUIとコマンドは、隠すものが違う
GitHub Desktopは、GitHubでの作業をターミナルではなく画面から行うための無料のアプリである。開発は公開されたリポジトリで進められており、ライセンスはMITで、実装の主な言語はTypeScriptである。動作環境はmacOS 12.0以降とWindows 10の64ビット版以降で、Linuxは対象に入っていない。この情報はGitHubの公開資料に載っているもので、インストールの前に確かめられる。
GitHub DesktopはGitHubに関することをターミナルではなくGUIで操作できるネイティブアプリです。 出典: zenn.dev
画面から操作する道具は、細かい引数を隠す代わりに、間違いにくい道筋を残す。差分を色で見せ、記録の対象を行単位で選ばせ、履歴の並べ替えをドラッグで済ませる。逆に、コマンドは何も隠さない。git diff --stat のように出す形を指定でき、git diff --no-index のようにリポジトリの外にあるファイル同士も比べられる。隠さないので学ぶ量は増えるが、覚えたことは全部そのまま使える。
注意が要るのは、画面のアプリを入れてもコマンドのGitが一緒に入るわけではない、という点である。GitHubの設定手順には、コマンドラインでもGitを使う場合はGitを手動でインストールする必要があると明記されている。画面の道具だけを入れて、ターミナルで git が見つからないと戸惑う人が毎年出るのは、ここを読み飛ばすからである。
引っかかりの正体は、行き来の回数にある
作業を1つ終えるまでに窓を何回またいだかを数えると、詰まっている場所がはっきりする。数え方は単純で、1つの変更を記録して確認するまでに、フォルダ、エディタ、ターミナル、履歴の画面のうち、どれを何回前面に出したかを書き留めるだけでよい。多くの場合、記録そのものは2回の操作で終わっていて、残りは場所の確認とコマンドの打ち直しに消えている。
行き来が多い作業には共通点がある。パスを手で打ち直していること、直前に見ていたフォルダとターミナルの現在位置がずれていること、そして結果を確かめるためにもう一度別の窓へ戻ること。この3つのどれかが出てきたら、道具の選び直しより先に、置き場所の決めごとを直したほうが効く。逆に、記録の取り消しや履歴の整理でメニューを探しているなら、それは操作を覚えるか、コマンドを1つ覚えるかで片が付く。
現場の書き手が残した言葉に、道具選びの本質が出ている。使う頻度が低い道具は存在を忘れる、という指摘である。月に1回しか使わない専用アプリは、必要な日に思い出せない。毎日触る場所の中に同じ機能があるほうが、結果として使われる。
分担を決める手順
順番に決めていけば、迷いは減る。
ステップ1は、画面に任せる作業を決めることである。差分を目で確かめる、記録する範囲を行単位で選ぶ、履歴を並べ替える、退避させて後で戻す。この4つは画面のほうが速く、間違えにくい。
ステップ2は、コマンドに任せる作業を決めることである。同じ操作を複数のリポジトリに繰り返す、結果を別の道具へ渡す、記録に残らない形で差分だけ見る、作業の記録を機械が読める形で出す。これらは打ったほうが速い。git diff --numstat のように機械向けの出力を持つコマンドは、集計へそのまま渡せる。
ステップ3は、切り替えの回数を減らすことである。フォルダを開いたらその場所でコマンドが打てる状態にしておく。開いている場所とターミナルの現在位置が常に同じなら、cd を打つ機会自体が消える。
ステップ4は、決めたことを1週間続けて、まだ残っている行き来を数え直すことである。残った回数が最初の半分以下になっていれば、分担の決め方は合っている。減っていないなら、手が止まる場所は道具の外にある。
初心者が先に覚えると楽になること
用語を3つだけ先に覚えると、画面の見え方が変わる。変更を記録の候補に入れることをステージ、記録そのものをコミット、手元の記録を相手側へ送ることをプッシュと呼ぶ。この3語が入っていれば、画面のボタンの並びが手順の順番どおりに読めるようになる。
その次に効くのは、取り消し方を先に覚えることである。記録を戻す、送る前のコミットの文面を直す、変更を一時的に退避させる。この3つの戻し方を知っていると、押す前に迷う時間が消える。画面のアプリはこの種の操作をドラッグや右クリックで用意しており、コミットの選び出しや結合、並べ替えを画面の上で行える。
覚える順番を逆にすると苦しくなる。分岐の作り方や合流の解決から入ると、事故が起きたときに戻す手段がないまま止まってしまう。取り消しを先に覚えるほうが、結果として早く進む。
乗り換える前に確かめたい注意点
道具を変える判断をする前に、次の点を確かめておくと無駄が減る。
- 扱うリポジトリに大きなファイルが含まれていないか。画像や動画を含む保管庫は、画面の道具でも端末でも、別の仕組みで扱う必要がある。
- 自分の作業に、画面に出ていない操作がどれだけあるか。週に1回も使わないなら、コマンドを1つ覚えるほうが軽い。
- 詰まっているのが記録の操作ではなく、場所の移動ではないか。移動が原因なら、Gitクライアントを変えても回数は減らない。
この3つを確かめると、「使いにくい」の内訳が、覚える量の問題なのか、窓の枚数の問題なのかに分かれる。前者なら手順書を1枚作れば済む。後者は、作業場所そのものを組み替える話になる。
画面に出ていない操作は、コマンド1つで足りる
画面のメニューを探し回るより、その1件だけコマンドで済ませたほうが速い作業がある。代表的なのは差分の見方である。git diff は既定で3行の前後を付けた形で変更箇所を出し、git diff --stat はファイルごとの増減を一覧にし、git diff --shortstat は変更したファイル数と追加・削除の行数だけを1行で返す。どれだけ変えたのかを知りたいだけの場面では、画面を開くより短い。
文章を扱うリポジトリでは git diff --word-diff が効く。既定では空白で語を区切り、消えた語を角括弧、加わった語を波括弧で囲んで示す。日本語の原稿のように1行が長い文書では、行単位の差分だと1行全体が変わったように見えてしまうため、語単位で出したほうが実際の変更箇所が分かる。区切りの基準は --word-diff-regex で変えられるので、1文字単位まで細かくできる。
リポジトリの外にあるファイル同士を比べたいときは git diff --no-index を付ける。この形は終了コードで違いの有無を返すので、確認の手順を後から自動にしたいときにも使える。差分を画面の道具で見たい場合は git difftool があり、-d を付けるとフォルダ単位でまとめて比較できる。画面とコマンドは対立するものではなく、入口が2つあるだけである。
窓の枚数から考える選び方
ファイル管理の道具側から見ると、この問題は記録の道具の出来ではなく、作業場所の構造の問題として扱える。フォルダを開いたらその場所のターミナルが一緒に切り替わり、差分の確認もその画面の中で終わるなら、切り替えの回数はそもそも発生しない。フォルダとターミナルとAIが同じ窓にあるという形は、覚えることを増やさずに行き来だけを削る方向の答えである。
どの機能が同じ画面に入っているかは、できることのページに機能の一覧がまとまっている。サイドバーでの場所の束ね方、フォルダごとに1つ持つターミナル、差分の確認までが1枚の画面に収まる構成になっている。書く道具や編集する道具との役割の違いを整理したページもあり、置き換えではなく手前に立つ道具だという考え方が他のファイル管理との比較に書かれている。
費用の面では、Macの中で使う範囲と、外から使う範囲で扱いが分かれている。料金のページには、Mac単体で使う分は期間の定めなく無料で、費用がかかるのは外出先の端末から母艦を触る場合だけだと記載されている。長い作業を仕掛けたまま席を立つ人向けに、手元のiPhoneやiPadから同じ画面を見て返事を打つ使い方を説明したiPhone・iPadから続きをのページもある。導入前に気になる点はよくある質問に集まっており、動作環境や台数の扱いを先に確かめられる。
判断の軸は、機能の多さではない。1つの変更を記録して確認し終えるまでに、窓を何回またぐかである。その回数が減る組み合わせが、その人にとって使いやすい構成になる。
よくある質問
GitHub Desktopは無料で使えますか?
無料で使えます。開発は公開されたリポジトリで進められており、ライセンスはMITです。動作環境はmacOS 12.0以降とWindows 10の64ビット版以降で、Linuxは対象に入っていません。画面のアプリを入れてもコマンドのGitは別なので、ターミナルでも使うなら公式サイトからGitを別に入れます。
画面の道具とコマンド、どちらを覚えるべきですか?
両方を使い分けるのが現実的です。差分を目で見る、行単位で記録の範囲を選ぶ、履歴を並べ替えるといった作業は画面が速く、同じ操作を繰り返す作業や結果を別の道具へ渡す作業はコマンドが速いです。先に覚えると楽なのは取り消しの方法です。
使いにくさを感じたら、別のGitクライアントに乗り換えるべきですか?
乗り換えの前に、詰まりが記録の操作にあるのか場所の移動にあるのかを数えてください。1つの変更を記録し終えるまでに窓を何回またいだかを書き留めると分かります。移動が原因の場合は、クライアントを変えても回数は減りません。
ターミナルでgitコマンドが見つからないのはなぜですか?
画面のアプリを入れてもコマンドのGitは一緒に入らないためです。GitHubの設定手順にも、コマンドラインでもGitを使う場合は手動でインストールする必要があると書かれています。公式の配布ページからGitを入れれば解決します。