FrontPage  Index  Search  Changes  RSS  Login

[git][emacs] magitメモ

概要

magitを使い始めるに当たってのトレーニングの記録。

注) Gitの用語を正しく使えていないので適宜読み替えてください。

キーバインドで探る使い方

  • ステータスバッファ
    • M-x magit-status
    • C-u M-x magit-status
    • C-u C-u M-x magit-status
    • g: リフレッシュ
    • l: 履歴操作用のサブメニューのウィンドウがポップする
    • b: ブランチ操作用のサブメニューのウィンドウがポップする
    • m: マージ操作用のサブメニューのウィンドウがポップする
    • r: リライト操作用のサブメニューのウィンドウがポップする
    • P: git push用のサブメニューのウィンドウがポップする
    • f: git update remote用のサブメニューのウィンドウがポップする
    • F: git pull用のサブメニューのウィンドウがポップする
    • N: git svn用のサブメニューのウィンドウがポップする
    • t: タグ作成用のサブメニューのウィンドウがポップする
    • M: サブモジュール操作用のサブメニューのウィンドウがポップする
  • セクションの切り替え
    • トグル: TAB/S-TAB
    • 番号指定: M-1/M-2/M-3/M-4
    • M-h: 隠す
    • M-H: すべて隠す
    • M-s: 表示
    • M-S: すべて表示
  • untracked files(Changes, Unstaged changes)
    • s: 選んだhunkをステージングエリアに追加する(ポイントやリージョンで選択)
    • S: すべてをステージングエリアに追加する
    • i: ファイル名を .gitignore に追加する
    • C-u i: 無視するファイル名を尋ねる
    • I: ファイル名を .git/info/exclude に追加する
    • k: 変更を取り消す
  • staging area (Staged changes)
    • u: 選んだhunkをステージングエリアから差し戻す(ポイントやリージョンで選択)
    • U: すべてをステージングエリアから差し戻す
    • c: commit用のウィンドウをポップアップさせる
      • C-c C-c: コミットを実行
      • C-c C-a: git commit --amend
      • C-c C-s: --signoff オプションのトグル(magit-commit-signoff 変数)
      • C-c C-e: --allow-empty オプションのトグル
    • C: commit用のウィンドウをポップアップさせる(ChangeLogスタイルのメッセージを挿入してくれる)
  • 履歴(*magit-log*バッファ)
    • l: 簡潔なログを表示する
    • L: 冗長モードのログを表示する
    • rl, rL: 範囲を指定できる
    • C-u L: 冗長モードのログを表示する(TODO: Lとの違いがあるのか無いのかよくわからない)
    • RET: ポイントで選択しているコミットについての詳細情報を表示する
    • a: そのコミットを現在のブランチに適用する
    • A: 衝突がなければそのコミットを適用してコミットする
    • v: そのコミットをrevertする
    • C-w: そのコミットのsha1をkill-ringにコピーする
    • =: マークしたコミットと差分を表示する
    • .: そのコミットをマークする
    • C-u .: そのコミットのマークを解除する
  • reflog
    • h: HEADのreflogを表示する
    • H: TODO: 何かプロンプトが出るような雰囲気を感じるけど何も起きなかった
  • 差分
    • d: 作業ツリーと任意のリビジョンの差分を表示する
    • D: 任意の2つのリビジョン間の差分を表示する
    • a: 選択しているhunkを作業ツリーに適用する
    • v: 選択しているhunkを作業ツリーに逆向きで適用する(たぶん)
  • タグ
    • サブメニュー(tをタイプしてメニューウィンドウをポップアップ)
      • t: 軽量タグ(lightweight tag)
      • a: 注釈タグ(annotated tag)
  • リセット(TODO: resetの仕組みがよくわかってないので触れない)
    • x
    • X
  • stash
    • z: 新しいstashを作る
    • Stashesセクション
      • a: stashを適用する
      • A: stashを適用してpopする
      • k: stashをdropする
      • RET: 選んだstashを表示する
      • SPC: 選んだstashを表示する
      • DEL: (TODO: 自分のキーボード設定が原因なのか何も起きない)
  • ブランチ
    • サブメニュー(bをタイプしてメニューウィンドウをポップアップ)
      • v: ブランチバッファ
      • n: 新規作成
      • m: リネーム
      • d: 削除
      • D: 強制削除
      • b: チェックアウト
  • Wazzup(TODO: ってなに?)
    • w: 現在のブランチと他のブランチとの関連のサマリを表示する
    • ;:
    • C-u w:
  • マージ
    • サブメニュー(mをタイプしてメニューウィンドウをポップアップ)
      • m: 手動マージを始める?
      • M: 自動的にマージする?
      • X: マージを取り消す場合はXでHEADをhaard resetする
      • e: 衝突解決用のエディタモードを起動する(操作は?で表示されるヘルプを参照する)
  • rebase
    • R: rebaseを実行する
  • コミット履歴の書き換え(TODO: ログ書き換えも理解してないので触れない)
    • サブメニュー(rをタイプしてメニューウィンドウをポップアップ)
      • b:
      • s:
      • a:
      • f:
      • *:
      • .:
  • push/pull
    • git pushのサブメニュー(Pをタイプしてメニューウィンドウをポップアップ)
      • P: 現在のブランチを指定先にpushする
      • t: Push tags
    • git remote updateのサブメニュー(fをタイプしてメニューウィンドウをポップアップ)
      • f: Current
      • a: All
      • o: Other
    • git pullのサブメニュー(Fをタイプしてメニューウィンドウをポップアップ)
      • F: 指定先から現在のブランチにpullする
  • サブモジュール
    • サブメニュー(Mをタイプしてメニューウィンドウをポップアップ)
      • u: 更新
      • b: 初期化と更新
      • i: 初期化
      • s: 同期
  • git svn
    • git svnのサブメニュー(Nをタイプしてメニューウィンドウをポップアップ)
      • r: git svn rebase
      • c: git svn dcommit
      • f: git svn fetch

hint: hunkのリージョン指定

hunkの一部をリージョン選択してs/hをタイプすると、選択範囲内のhunkだけがadd/removeの対象になる。ただし、リージョンが複数のhunkにまたがっている場合は、ポイントが近い方のhunkが対象になる。

hint: ステージングエリアが空の時のc

ステージングエリア(Staged changes)に何もない状態でcをタイプすると、unstagedなものすべてをコミットするか聞かれる。

TODO: 挙動を magit-commit-all-when-nothing-staged で変更できる様な気配がする。

hint: gitのオプション指定

いくつかのコマンドについて、スイッチや引数を指定することが出来る。ポップアップするサブメニューでキーをタイプすればよい。

Last modified:2011/05/06 00:05:57
Keyword(s):[git] [emacs]
References: