
2026/03/10 22:38
**Magitでのリベース操作** - ステータスバッファ上で `r`(または `R`)を押すと、リベース用サブメニューが開きます。 - 目的に応じて次のいずれかを選択してください。 - **rebase** – 現在のブランチに対してインタラクティブリベースを開始します。 - **continue** – コンフリクト解消後、リベースを継続します。 - **abort** – 現在進行中のリベースを取り消します。 - **skip** – コンフリクト解決時に現在のコミットをスキップします。 - リベース中は *conflicts* セクションに衝突箇所が表示されます。該当ファイルを修正した後、`continue` を実行してください。 - 完了したら `magit-refresh`(`g`)を押してステータスバッファを更新します。 この手順でブランチの履歴はクリーンに保たれ、コミットが別のベース上に再配置されます。
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
Improved Summary
Magit のインタラクティブログは、Emacs から簡潔なキーシーケンスで複雑な Git コマンドを直接実行できるようにします。ログを開くには
F3 lL を押します。l を押すと、作者フィルター(-A)、日付範囲(=u)、グラフ表示、統計出力(-s)やファイルパス制限(--tests)などのオプションに関する非侵襲的なヒントが表示されます。典型的なカスタムログキーシーケンスは次のとおりです。
l-Akqr␍=u2025‑06‑01␍-s--tests␍b
これはシェルコマンドに変換されます:
git log --branches --remote --author=kqr --until=2025‑06‑01 \ --graph --color --decorate --no-merges --stat -- tests
ログビューは完全にインタラクティブです:
bb␍(チェックアウト)でブランチを切り替え、re␍ でリベースを開始できます。インタラクティブリベース中には k、f、w、s のホットキーが一般的な操作を実行し、リベース後にビューが更新されて新しいブランチ順序が表示されます。
Magit はすべての基盤となる Git コール(例:
git checkout … や git rebase --autostash …)を公開しているため、ユーザーは使用されているオプション(--force-with-lease、--autostash など)を正確に確認できます。この透明性は、他の GUI が隠す高度な Git フラグの学習を促進します。
今後のセクションでは、ステージング、アンステージング、リバート、リセットといった操作のための追加インタラクティブツールが提供される予定です。これらの操作を発見しやすく透明にすることで、Magit は開発者がワークフローの裏側にある仕組みを理解できるよう支援し、不透明なグラフィカルインターフェースと比べてエラーを減らし効率を向上させます。
本文
I read Ian Whitlock’s article on why he can’t quit Magit and it inspired me to share more about Magit from my perspective. This article will focus on rebasing.
あなたのコマンドセンター:git log
ここでは git log を開きます(最初の
l は git log へのプレフィックスキー、2 番目の L はすべてのローカルブランチとそれらが追跡しているリモートブランチのログを表示します)。(スクリーンショット用に領域を選択したアーティファクト。)
1. Magit を開く(F3 に割り当て) 2. l L を押す
もしもっと複雑なログコマンドを実行したい場合、Magit ではとても簡単にできます。最初の
l を押して少し待つと、利用可能なすべてのオプションについて非侵襲的なヒントが表示されます。
つまり、必要なオプションを正確に覚えておく必要はありません。必要になったら Magit が思い出させてくれます。以下はいくつかの例です:
-
特定の作者に限定 –
と入力すると、リポジトリ内のすべての作者をファジーマッチングで一覧表示します。-A
リストを閲覧するか名前を入力して Return を押してください。 -
日付範囲を限定 –
と入力すると、日付選択用のカレンダーが表示されます。手動で入力することも可能です。=u -
カラーとデコレーション付きのグラフビュー(マージコミットなし) – これは既にデフォルトで有効になっています(太字・ハイライトされたフラグ名)。
-
ファイル diffstat を表示 –
と入力。-s -
テストサブディレクトリ内のファイルのみを対象 –
の後に--
と入力し、Return で確定します。tests
この設定では、ローカルとリモート両方のブランチを確認したいので、
b を押してそのビューに切り替えます。
完全なキー操作シーケンス
l -A kqr ␍ =u 2025-06-01 ␍ -s -- tests ␍ b
(ここで
␍ は Return を意味します。)
一見複雑に見えますが、ヒントを順番に使いながら構築しています。頻繁に使うログタイプなら、ヒントを見ずともこの操作列を書き出せるようになります。発見性と効率の両方を兼ね備えています。
対応するシェルコマンド
$ git log --branches --remote \ --author=kqr --until=2025-06-01 \ --graph --color --decorate --no-merges \ --stat -- tests
Magit は同じオプションをヒントとして表示するので、マニュアルとコマンドラインの間で切り替える必要はありません。
インタラクティブなインターフェースを使うことで Git コマンドラインが下手になるという心配は Magit では無用です。完全に透明で、基礎となる Git コマンドへの理解を促します。
ログからのリベース
目的:
profiling-of-test-suite を optimise-company-name-generation の上にリベースする。現在のブランチは
optimise で、青い枠でハイライトされています。
-
(灰色のハイライト)にカーソルを合わせてprofiling
を押す。bb␍
最初の
= チェックアウト、2 番目のb
= ブランチ;ファジーマッチングリストはカーソル下のブランチがデフォルトです。b -
カーソルを上に移動して
を選択し、optimise
を押す。re␍
= リベース、r
= “elsewhere”(アップストリームの上ではない)という意味です。e
不安な場合は最初の文字だけ入力するとヒントが表示されます。
-i を追加するとインタラクティブリベースになります。
ログが更新され、
profiling ブランチが optimise の上に来ていることが確認できます。
インタラクティブリベース
より複雑でインタラクティブなリベースを行う場合は、ホットキー付きの編集可能リストが表示されます:
– discardk
– fixupf
– rewordw
– squashs
コミットリスト内でもサポートされている操作一覧を見ることができます。
何をしたか?
$ を押して Magit のコマンドログを表示すると、以下のように出力されます:
git checkout profiling-of-test-suite git rebase --autostash optimise-company-name-generation
--autostash フラグは操作前に一時的なスタッシュを作成し、操作後に再適用します。これにより汚れたワークツリーでもリベースが可能です。
他の Git インターフェース
これは複雑な操作ではなく、コマンドラインからも実行できます。しかし、Magit のインタラクティブログを通じて行うことで、各コマンドが何をしているか直感的に理解できるようになります。Magit に慣れれば、より複雑なコマンドも自信を持って実行できます。
他にもグラフィカルな Git インターフェースは存在しますが、それらは Git 自体の学習にはあまり貢献しません。Magit は git CLI の薄いラッパーであり、インタラクティビティ・発見性・効率を提供しつつ、基礎コマンドを隠すことなく表示します。
これまでに Magit ができることの一端しか見てきませんでした。次回は、ファイルやハンク、さらにはハンクの一部をステージ・アンステージ・リバート・リセットする方法など、Magit がどれほど簡単に行えるかをご紹介します。