MarkNode には Git サポートが組み込まれており、エディタを離れることなく変更の追跡、コミット、リモートとの同期ができます。
リポジトリの自動検出
フォルダをプロジェクトとして開くと、MarkNode はそのフォルダに Git リポジトリが含まれているかどうかを確認します。リポジトリが見つかった場合、Git 機能が自動的に有効になります — 設定は不要です。フォルダが Git リポジトリでない場合、Git 機能は表示されません。
ステータスバー
ウィンドウ下部のステータスバーには、現在の Git の状況がひと目でわかるように表示されます:
- ブランチ名 — 現在チェックアウトされているブランチ
- 変更数 — 変更、追加、または削除されたファイルの数。この数はクリック可能です: クリックするとソース管理パネルが開きます。
ブランチ表示はリアルタイムで更新されます。ターミナルや他のツールからブランチを切り替えた場合も、再読み込みすることなくステータスバーに反映されます。リモートとの先行/遅延コミット数やすべての Git 操作については、以下で説明するソース管理パネルを使用してください。
ソース管理パネル
すべての Git 操作は ソース管理パネル にまとまっています — VS Code などのエディタでおなじみのソース管理パターンをモデルにしたサイドバービューです。ナビゲーションバーの ソース管理 アイコン(最近使用したファイル の後に表示され、プロジェクトが Git リポジトリの場合のみ表示されます)から開くか、macOS では Cmd+Shift+K、Windows および Linux では Ctrl+Shift+K を押します。
このパネルなら、モーダルダイアログでエディタが隠れることなく、すべてを一箇所で操作できます:
- ヘッダー — 現在のブランチ名と、リモートに対する先行/遅延コミット数
- 変更されたファイル — ステージ済みの変更 と 変更(未ステージ)にグループ分けされ、各項目にファイル名、パス、ステータス文字が表示されます
- インラインアクション — ファイルにカーソルを合わせるとステージまたはステージ解除ができます。変更 ヘッダーには すべてステージ、ステージ済みの変更 ヘッダーには すべてステージ解除 のアクションがあります
- コミットエリア — メッセージボックスと コミット ボタン。ファイルをステージしてメッセージを入力すると有効になります
- ツールバー — プル、プッシュ、更新 のアクション
ファイルステータスの表示
ファイルエクスプローラーは、各ファイル名に色を付けて Git のステータスを示します:
| ステータス | 意味 |
|---|---|
| 変更 | ファイルに未コミットの変更がある |
| 追加 | ステージ済みの新規ファイル |
| 未追跡 | まだステージされていない新規ファイル |
| 削除 | 追跡対象のファイルが削除された |
| 名前変更 | 追跡対象のファイルが移動または名前変更された |
| 競合 | 解決が必要なマージ競合がある |
ステータスはフォルダツリーを上位に向かって伝播します — フォルダ内のいずれかのファイルに変更があれば、親フォルダの名前にも色が付きます(最も優先度の高いステータスが採用されます)。これにより、すべてのディレクトリを展開しなくても、プロジェクト内の変更箇所を見つけられます。
変更のコミット
コミットはソース管理パネル内でインラインに行われます — 別途ダイアログが開くことはありません:
- 含めたいファイルにカーソルを合わせてステージアクションをクリックするか、セクションヘッダーの すべてステージ を使用してステージします。
- メッセージボックスにコミットメッセージを入力します。
- コミット をクリックします。
MarkNode はローカルリポジトリに対してコミットを実行し、メッセージボックスをクリアして、ファイル一覧とステータスバーの変更数を更新します。コミットが失敗した場合 — 例えば pre-commit フックが拒否した場合など — パネルにエラーが表示され、コミットメッセージは保持されるので再試行できます。
プルとプッシュ
プッシュ と プル のアクションは、ソース管理パネルのツールバーにあります。
- プル はリモートから最新のコミットを取得し、現在のブランチにマージします
- プッシュ はローカルのコミットをリモートに送信します
プッシュが拒否された場合(例えば、ローカルにないコミットがリモートに存在する場合など)、先にプルして競合を解決してから、あらためてプッシュする必要があります。
MarkNode の外部で変更されたファイル
ターミナルや他のエディタからファイルを変更した場合、MarkNode はその変更を検出し、該当するファイルを自動的に再読み込みします。エディタやファイルエクスプローラーを手動で更新する必要はありません。
これは Git 操作についても同様です — git checkout、git merge、その他ワーキングツリーのファイルを変更するコマンドを実行すると、その結果はただちにエディタに反映されます。