magitのつかいかた

ひとりでmagit

2025.3.6: r1
2014.2.27:初版

Emacsでgitを使う方法。

昔個人のPCで一人gitしててめげましたが、github使うために再開しました。

環境はbookwormです。

準備

2025.3 magitをpackage-install時

Emergency (magit): Magit requires ‘seq’ >= 2.24,

と言われたのでseqをpkg-install

1  M-x package-install seq

としてから、package-install magitした。

Emacsでgitを使うために、magit.elを用いた時の簡単な使い方

  1. M-x magit-init

    管理dirを聞かれ、Bufferには ~/****/*****と現在のdirが表示される。 しかし~をHome直下(home/hoge)と認識してくれず、現在のdirを~と認識して、深いdirを掘ってしまう。

    1  ./

    と指定すること

  2. M-x magit-status

    通常magitへの入口

    git管理下のdirで実行したらmagitのbufferが開く。

    Untracked files
    Unstaged changes
    

    などが現れる。

    Unstaged changes
    はファイル名が表示されているが、
    Untracked files
    は何も表示されていない
    
  3. gitで管理するファイルを選択する

    addのことかな?? stagingが正しい言い方のよう(SVNと混同しないようにstagingと名付けたらしい)

    Untrackedにカーソル動かして tabキー押すと、untrack新規ファイルが表示される。

    1つずつしかstagingできない?ようである。 ファイル名表記部にカーソル動かして、sキー(staging)を押す。

    Staged changesに

    new file ファイル名
    modified ファイル名
    

    が表記される

    カーソルをファイル名に移してから、sキーを押すと、そのファイルはステージに上がる。
    S(大文字S)なら全ファイル指定。
    C-u-i ならignoreファイルとして指定

    ?から始めても良い。コマンド一覧が表示

  4. c
    同じ画面からcを押すとArguments/Create/EditHEADなどの画面になる。
    もう一度cを押してCommit注釈を入力画面にする。 commitの注釈を入力する。
    注釈文を書かないと、commitできない。
    注釈文は1行目に主な項目、3行目以降に詳細を記述。 2行目には書かないこと(赤字になる)
    注釈文の書き方:https://qiita.com/itosho/items/9565c6ad2ffc24c09364
  5. C-c C-c
    注釈文を書いたあとcomitするにはC-c C-c
  6. pushするには、P
    push先のurl登録してなければ、聞いてくる。
    git remote add origin htts://hoge/[].gitと同じ
  7. logを見るには

    magit-log(-all)
    magit-statusからll
    

    など

  8. ファイル削除
    magit-file-delete
  9. ブランチ作成
    M-x magit-status
    としたあと、 bを押すとブランチ操作メニューが現れるので、 そこでnを押すと新規作成してくれる vはブランチ操作メニュー 分岐元を指定
  10. chkout
    mainから選択したらあちこちいける?? 分岐元をmainに選ぶ。(tabで選択) local brunchに変更

編集後はguthubには、pushだけでok

1git push -u origin main

miscなこと

keybind設定おすすめ

https://kazuhira-r.hatenablog.com/entry/2023/11/16/001403

1;; magit
2(define-key global-map (kbd "C-x g") 'magit-status)
3(define-key global-map (kbd "C-c g") 'magit-dispatch)
4(define-key global-map (kbd "C-c f") 'magit-file-dispatch)

https://magit.vc/manual/magit/Global-Bindings.html

User Option: magit-define-global-key-bindings

 1    This option controls which set of Magit key bindings, if any, may be added to the global keymap, even before Magit is first used in the current Emacs session.
 2
 3        If the value is nil, no bindings are added.
 4        If default, maybe add:
 5        C-x g	magit-status
 6        C-x M-g	magit-dispatch
 7        C-c M-g	magit-file-dispatch
 8        If recommended, maybe add:
 9        C-x g	magit-status
10        C-c g	magit-dispatch
11        C-c f	magit-file-dispatch

magit-status magit-init ここではkeybind設定:不要!

https://joppot.info/posts/f2721fb2-0942-4c4e-90e2-0dbdbb329bce
magitはデフォルトでキーバインドされているコマンドは2つしかありません。 "C-x g" magit-status)と("C-x M-g" magit-dispatch-popup)です

C-h bでみたら magit-dispatch は?,C-c C-c, C-x M-g,hにbind済

## Git をはじめからていねいに
https://github.com/Shinpeim/introduction-to-git

上記をmagitで実施した例 Magit を使ってみる
https://qiita.com/ignorant/items/86d353e3ada299f12836

## git公式ドキュメント
https://git-scm.com/book/ja/v2

## magitざっくりチートシート
https://qiita.com/yoshikyoto/items/fffbe1d46953d020939e

amendは c a (commitはc cなので2つめのcをaにする)

##EmacsでMagitを使う
https://iriya-ufo.net/blog/2022/02/22/magit/

##Emacsの最強GitクライアントMagitの使い方(Joppot)
https://joppot.info/posts/f2721fb2-0942-4c4e-90e2-0dbdbb329bce

##試行錯誤な日々/emacsでmagitを使ってタイプ数を減らす話
https://asukiaaa.blogspot.com/2017/09/emacsmagit.html

## magit 覚書
http://tanehp.ec-net.jp/heppoko-lab/prog/resource/magit/magit_memo.html