Git
PATerminalは、Gitを必要な場所に置いています。各ペインにはそれぞれのリポジトリの状態が表示され、Gitウィンドウではコミット、履歴、ブランチを扱える本格的なクライアントを使えます。すべての操作はお使いのコンピューターのgitで実行されます。
PATerminal v1.8.3 時点の内容です
ペインバーのGit
ペインがリポジトリ内にあるとき、上部のバーには現在のブランチ、先行しているコミット数(↑)と遅れているコミット数(↓)、変更されたファイル数が表示されます。その横には次のボタンが並びます。
- ブランチ名
- ブランチ一覧を開きます。ローカルブランチが先に、リモートにしかないブランチがその後に並びます。ブランチをクリックする(またはEnterを押す)と切り替わります。存在しない名前を入力してEnterを押すと、そのブランチを作成して切り替えます。別のworktreeでチェックアウト中のブランチには印が付き、選べません。
- Diff
- Gitウィンドウを開かずに、このペインのフォルダーの未コミットの変更を表示します。
- Worktree
- このリポジトリのworktreeを作成します。Worktreeをご覧ください。
- Commit
- Gitウィンドウのファイルステータスを、メッセージ欄にフォーカスした状態で開きます。
- Fetch / Pull / Push
- 取り込める変更があるとPullが強調表示されます。upstreamが設定されていない場合は、リモートの既定ブランチ(例:
origin/main)からPullします。取り込み元はツールチップで確認できます。Pushは、まだPushしていないコミットがあるときに表示されます。
Gitウィンドウ
ツールバーのGitをクリックするかCmd/Ctrl+Eを押すと、フォーカス中のターミナルのリポジトリについてGitウィンドウが開きます。ツールバーのバッジは変更されたファイル数です。閉じるにはEsc、×ボタン、またはもう一度Cmd/Ctrl+Eを押します。端をドラッグするとサイズを変えられ、ハンドルをダブルクリックすると元に戻ります。
左側ではファイルステータス、履歴、検索、worktree、Issue、プルリクエストを切り替えられ、ブランチ(/ごとにフォルダーにまとめて表示)、リモート、タグが一覧表示されます。refをクリックすると履歴でそのコミットを表示し、ブランチをダブルクリックするとチェックアウトします。
変更を確認してコミットする
- Gitウィンドウを開きます。最初はファイルステータスが表示され、未コミットのファイルがすべて、状態と行数の増減とともに並びます。
- ファイルをクリックすると、行番号付きのdiffが表示されます。このコミットに含めたくないファイルはチェックを外します。
- コミットメッセージにメッセージを入力します。すぐにPushしたい場合はコミット後にPushにチェックを入れます。
- Commitを押すか、Cmd/Ctrl+Enterを押します。
すべての差分を押すと、作業ツリー全体のdiffを大きなビューアーで開きます。ビューアーでは長い行が折り返され、ファイル一覧の端をドラッグして幅を広げることもできます。
履歴を見る
履歴では、ローカルとリモートのすべてのブランチとタグにわたるコミットグラフを表示します。コミットを選ぶと、その下に変更ファイルとパッチが表示されます。検索では、メッセージ、作者、ハッシュで絞り込めます。
コミットを右クリック → このコミットまで巻き戻す…で、ブランチをそのコミットまでリセットします。それより後のコミットは現在の履歴から外れ、追跡中のファイルの未コミットの変更は破棄されます(未追跡のファイルは残ります)。そのため、実行前に確認が表示されます。
Pull、Push、Fetch、Stash
- Pull
- ブランチを切り替えずに、現在のブランチへ取り込むリモートブランチを選べます。
- Push
- 現在のブランチをPushします。初回のPushではupstreamも設定します。
- Fetch
- すべてのリモートから更新を取得します。
- Stash
- 未追跡のファイルも含めて変更をスタッシュへ退避します(
git stash push -u)。
Gitを実行できないとき
コンピューターの環境が原因でgitが動かない場合、PATerminalは理由と1行の解決コマンドを表示します。ターミナルに入力でコマンドを入力するか(Enterは自分で押します)、コピーしてください。Xcodeのライセンスへの未同意、Command Line Toolsの欠落、Gitの未インストール、別のユーザーが所有するフォルダー(“dubious ownership”)、Windowsの長いパスの制限を検出できます。