Kiln ドキュメント
ダウンロード

ドキュメントツール

Git と GitHub

選択したリポジトリでコミット履歴と diff を確認し、コミットのスカッシュ、チェリーピック、削除、メッセージの修正を行う方法を説明します。

Kiln では、コミット履歴、diff、プルリクエストを、ターミナルの横のワークスペースインスペクターで扱えます。Git の操作はすべて選択したリポジトリに対して実行されるので、複数のリポジトリにまたがるワークスペースでも安全に履歴を書き換えられます。

デモ用ワークスペースで動かした Kiln
デモ用ワークスペースで動かした Kiln

非アクティブなワークスペースでは、リポジトリ状態の自動確認を一時停止します。最後の結果は表示されたままで、そのワークスペースに戻ると確認を再開します。

Git ツールを開く

右側のワークスペースインスペクターには変更と GitHub があります。タイトルバーのツールメニューからもソース管理と GitHub を開けます。この場合、ターミナルの作業を置き換えずに、現在の作業の横に開きます。

GitHub の機能には GitHub CLI を使います。使う前に gh をインストールし、ログインしておいてください。詳しくはインストールとアップデートを参照してください。

リポジトリを選ぶ

ワークスペースのフォルダーには、1 つのリポジトリも、~/dev/projects のように複数のリポジトリを含む親フォルダーも指定できます。複数リポジトリのワークスペースでは、Git と GitHub のツールにあるリポジトリセレクターで、作業したいリポジトリを選びます。

リポジトリを選んで変わるのは、Git 操作の適用先だけです。作業ディレクトリはワークスペースのフォルダーのままで、確認中のリポジトリにエージェントが移動することもありません。詳しくはワークスペースと作業を参照してください。

警告 複数リポジトリのワークスペースでは、履歴を変更する前に選択中のリポジトリを確認してください。

履歴と diff を閲覧する

変更を開いてリポジトリを選ぶと、そのコミット履歴が表示されます。一覧はそのまま操作でき、編集モードに切り替える必要はありません。

操作 方法
コミットを選ぶ クリックする
範囲を選ぶ 行をまたいでドラッグする、または Shift キーを押しながらクリックする
コミットの diff を開く コミットをダブルクリックする
コミットの操作を表示する コミットまたは選択範囲を右クリックする
別のブランチを閲覧する ブランチフィルターを使う
大きな表示で開く 展開アイコンをクリックする

ブランチフィルターを使うと、チェックアウトせずに別のブランチを閲覧できます。展開アイコンを押すと、同じ履歴を同じ操作のまま大きなタブで開きます。複数リポジトリの概要では、各リポジトリの横にある履歴アイコンからその大きな表示を直接開けます。

⇧⌘L で履歴を開けます。リポジトリが 1 つのワークスペースでは履歴が直接開きます。複数ある場合はリポジトリの概要が開くので、先にリポジトリを選びます。

注意 このページのショートカットは macOS のキーで表記しています。Windows ではアプリのショートカットの ⌘ を Ctrl+Shift と読み替えるので、⇧⌘ は Ctrl+Shift+Alt になります。

コミットメッセージを修正する

  1. 現在のブランチのコミットを右クリックします。
  2. メッセージを修正を選びます。
  3. 確認ダイアログでメッセージを編集し、適用します。

コミットをすでにプッシュしている場合は、リモートの履歴も更新する必要があります。続ける前に、ダイアログの警告を確認してください。

コミットをスカッシュする

  1. コミットの行をまたいでドラッグするか、Shift キーを押しながらクリックして範囲を選びます。
  2. 選択範囲の操作またはコンテキストメニューからスカッシュを選びます。
  3. 対象のブランチとコミットを確認し、まとめたメッセージを編集します。
  4. 共有履歴に関する警告があれば確認し、確定します。

スカッシュできるのは、現在のブランチのうち、対応している直線的な区間にある連続したコミットです。

ヒント Option キーを押しながらのドラッグ(Windows では Alt キー)は別の操作として扱われ、範囲を選ぶ代わりにコミットを並べ替えます。

別のブランチからチェリーピックする

  1. 履歴フィルターで取り込み元のブランチを選びます。
  2. 取り込みたいコミットを選びます。
  3. チェリーピックを選びます。

Kiln は選んだ変更を、現在のブランチに新しいコミットとして適用します。フィルターで変わるのは閲覧対象だけで、取り込み元のブランチがチェックアウトされることはありません。

コミットを削除する

コミットを 1 つ以上選び、コミットを削除を選びます。Kiln は履歴を書き換えて、それらの変更を現在のブランチから取り除きます。新しいコミットを追加する revert とは異なります。確定する前に、影響を受ける範囲を確認してください。

共有履歴と復旧

スカッシュ、削除、チェリーピックには、共通の安全策があります。

  • 事前チェック。実行前に、Kiln は worktree、ブランチ、HEAD、リモートの状態を確認します。
  • バックアップ ref。 Kiln は元の HEAD をバックアップ ref に保存します。バックアップの情報は結果の詳細で確認できます。
  • 共有履歴の警告。影響を受けるコミットがリモートのデフォルトブランチに含まれている場合や、Kiln が判断できない場合は、確認画面で警告が表示されます。
  • 保護されたプッシュ。プッシュ済みのコミットをスカッシュまたは削除すると、Kiln は期待する状態を明示した --force-with-lease での自動プッシュを提案します。その間にリモートが変更されていた場合、プッシュは上書きせずに拒否されます。
  • サーバーのルールは引き続き適用されます。サーバー側のブランチ保護は有効なままです。Kiln がそれを回避することはありません。

コンフリクト

コンフリクトが起きると操作は停止し、続行、スキップ、中止を選べるようになります。操作が停止している間は何もプッシュされません。

プッシュの失敗

ローカルでの書き換えは完了したもののプッシュに失敗した場合、Kiln は 2 つの結果を分けて表示し、ローカルの書き換えは完了したこと、リモートの更新は完了していないことがわかるようにします。バックアップの情報は結果の詳細で引き続き確認できます。

プルリクエスト

インスペクターで GitHub を開くと、ワークスペースを離れずに選択中のリポジトリのプルリクエストを確認できます。Git の履歴と同様に、複数リポジトリのワークスペースではリポジトリセレクターを使います。

  • 複数のリポジトリを含む親フォルダーについては、ワークスペースと作業を参照してください。
  • ファイルエクスプローラーと無視対象のファイルについては、エディターと検索を参照してください。