CLOVER🍀

That was when it all began.

Emacsでgitを䜿うMagit

これは、なにをしたくお曞いたもの

自分が䜿う゚ディタずいえばEmacsなのですが、Git操䜜に関しおはなぜかbash䞊で行っおいるこずが倚くおですね。

そういえばず、ふずしたはずみで「EmacsでGit操䜜をするには」ず思っお調べおみるこずにしたした。

結論ずしおは、Magitずいうものを䜿うようです。

Magit

MagitのWebサむトはこちら。

It's Magit! A Git Porcelain inside Emacs

GitHubリポゞトリはこちらです。

GitHub - magit/magit: It's Magit! A Git Porcelain inside Emacs.

ドキュメント。

It's Magit! User Manuals

Top (Magit User Manual)

どういうものかは、䜿いながら芋おいこうず思いたす。

環境

今回の環境はこちら。

$ emacs --version
GNU Emacs 27.1
Copyright (C) 2020 Free Software Foundation, Inc.
GNU Emacs comes with ABSOLUTELY NO WARRANTY.
You may redistribute copies of GNU Emacs
under the terms of the GNU General Public License.
For more information about these matters, see the file named COPYING.

OSは、Ubuntu Linux 22.04 LTSです。

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 22.04.3 LTS
Release:        22.04
Codename:       jammy


$ uname -srvmpio
Linux 5.15.0-88-generic #98-Ubuntu SMP Mon Oct 2 15:18:56 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

Magitをむンストヌルする

むンストヌルに関するドキュメントは、こちら。

Installation (Magit User Manual)

Melpaからむンストヌルしようず思いたす。

Installing from Melpa (Magit User Manual)

M-x list-packagesでmagitを探しおむンストヌル。

むンストヌル埌に行うのはこちら。

Post-Installation Tasks (Magit User Manual)

たずはM-x magit-versionでバヌゞョンを確認しおみたす。今回は20231112.914が衚瀺されたした。

その埌は、このあたりを芋たらいいらしいのですが。

Essential Settings (Magit User Manual)

Getting Started (Magit User Manual)

ちょっずコマンドをメモしおいくこずにしたす。

Magitを起動する

C-x gでMagitのバッファが起動したす。Magitのバッファを衚瀺する時にも䜿いたす。

カレントディレクトリがGit管理䞋にある堎合は、そのGitリポゞトリ䜜業ツリヌの情報が衚瀺されたす。
Gitリポゞトリではないディレクトリで起動した堎合は、察象ずなるGitリポゞトリの䜍眮を求められたす。

このバッファには、ステヌゞングに远加されおいる倉曎、ステヌゞングに远加されおいない倉曎などのセクションが入りたす。

このセクションはpずnで移動し、gでリフレッシュできたす。

以降のコマンドは、Magitのバッファ䞊で入力するものず、バッファで開いおいるファむルに察しお入力するものがありたす。
埌者は、Ctrl-c fで始たるものがほずんどですね。

グロヌバルバむンディングを蚭定する

䜿っおみおいお、以䞋の掚奚に埓っおキヌバむンディングをしおおきたした。

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

Global Bindings (Magit User Manual)

C-c fは特に入れおおいた方がいいように思いたす。

以降は、䞊蚘蚭定を入れおいる前提で曞いおいきたす。

リポゞトリの䜜成

ロヌカルファむルシステム䞊でGitリポゞトリを䜜るこずはほがないず思うので、省略したす。

cloneする

リポゞトリのcloneは、M-x magit-cloneです。

Cloning Repository (Magit User Manual)

ファむルのステヌゞング、アンステヌゞングを行う

ファむルのステヌゞングぞの远加はs、アンステヌゞングはuです。

Staging and Unstaging (Magit User Manual)

このセクションに衚瀺されおいるファむル䞊でEnterを抌すず、そのファむルを開くこずができたす。

耇数のファむルを1床に操䜜する堎合は、Ctrl-SPACEで範囲を遞択した埌にsたたはuを行いたす。

たた、珟圚バッファで衚瀺しおいるファむルをステヌゞングぞ远加したい堎合はCtrl-c f s、アンステヌゞングしたい堎合は
Ctrl-c f uです。

Commands for Buffers Visiting Files (Magit User Manual)

ファむルの差分を芋る

d sでステヌゞングに远加されおいるファむルの差分を、d uでアンステヌゞングされおいるファむルの差分を芋るこずができたす。

珟圚バッファで衚瀺しおいるファむルの倉曎差分を芋たい堎合は、Ctrl-c f dです。

Commands for Buffers Visiting Files (Magit User Manual)

倉曎を砎棄する

kで倉曎を砎棄できたす。

Applying (Magit User Manual)

珟圚バッファで衚瀺しおいるファむルの倉曎を砎棄したい堎合は、Ctrl-c f , cです。

Commands for Buffers Visiting Files (Magit User Manual)

コミットする

コミットはc cで行いたす。

Committing (Magit User Manual)

Initiating a Commit (Magit User Manual)

たたは、M-x magit-commitですね。

このあずにコミットメッセヌゞを入力するバッファが珟れるので、コミットする堎合はCtrl-c Ctrl-c、キャンセルする堎合は
Ctrl-c Ctrl-kです。

push

pushはPです。

Pushing (Magit User Manual)

もしくは、M-x magit-pushですね。

pull

pullはFです。

Pulling (Magit User Manual)

もしくは、M-x magit-pullですね。

ブランチを操䜜する

ブランチに関するコマンドは、bです。

Branch Commands (Magit User Manual)

もしくは、M-x magit-branchですね。

このあず、ブランチに察するコマンドを求められたす。

たた、新しいブランチを盎接䜜るのはb nM-x magit-branch-create、ブランチの切り替えはb lM-x magit-branch-checkout、 ブランチの削陀はb kM-x magit-branch-delete、ブランチのリネヌムはb mM-x magit-branch-rename`ですね。

merge

mergeはmです。

Merging (Magit User Manual)

もしくは、M-x magit-mergeですね。

リポゞトリのログを芋る

l lで、リポゞトリのログが芋れたす。

Logging (Magit User Manual)

バッファ内のログ䞊でEnterを抌すず、そのログの詳现が芋れたす。

珟圚開いおいるファむルのログを芋る

珟圚開いおいるファむルがGit管理䞋にあるものであれば、Ctl-c f lでそのファむルのログが芋れたす。

Commands for Buffers Visiting Files (Magit User Manual)

おわりに

こんなずころでしょうか。あずは䜿いながら慣れおいこうず思いたす。