- 追加された行はこの色です。
- 削除された行はこの色です。
#author("2021-07-03T09:01:13+00:00","","")
#topicpath
///////////////////////////////////////////////////////////////////////////////
* 目次 [#idf216d8]
#contents();
#ls2(VersionCtl/git/magit/);
///////////////////////////////////////////////////////////////////////////////
* 導入方法(v.2.13.1) [#ff5792d3]
- magit 本体を取得。
-- https://github.com/magit/magit.git
- 追加で以下が必要となる。
-- https://github.com/magit/git-modes.git
-- https://github.com/magit/ghub.git
-- https://github.com/magit/magit-popup.git
-- https://github.com/magit/with-editor.git
-- https://github.com/vermiculus/graphql.el.git
- ${HOME}/.emacs.d/site-lisp/ 配下に手動インストールした場合の設定例。
(setq load-path (cons (expand-file-name "~/.emacs.d/site-lisp/dash") load-path))
(setq load-path (cons (expand-file-name "~/.emacs.d/site-lisp/with-editor") load-path))
(setq load-path (cons (expand-file-name "~/.emacs.d/site-lisp/magit-popup") load-path))
(setq load-path (cons (expand-file-name "~/.emacs.d/site-lisp/graphql") load-path))
(setq load-path (cons (expand-file-name "~/.emacs.d/site-lisp/treepy") load-path))
(setq load-path (cons (expand-file-name "~/.emacs.d/site-lisp/ghub") load-path))
(setq load-path (cons (expand-file-name "~/.emacs.d/site-lisp/magit/lisp") load-path))
- compile
-- graphql
--- make を実行するのに、yq (jq の wrapper。[[yqの入手元(GitHub)>https://github.com/kislyuk/yq]])、及び jq が必要になる。
--- jq は debian なら jq パッケージで導入可。
///////////////////////////////////////////////////////////////////////////////
* コマンド version 2.13.1 [#e2a1159f]
|~binding |~command |~description |~remark |
| b |magit-branching |ブランチ操作 | |
| y |magit-show-refs-popup |ブランチ一覧 | |
** version 2.8.0 [#t45c8917]
|~binding |~command |~remark |
| C-j |magit-diff-visit-file-worktree | |
| C |magit-commit-add-log | |
| K |magit-file-untrack | |
| R |magit-file-rename | |
| a |magit-apply | |
| s |magit-stage | |
| u |magit-unstage | |
| <C-return> |magit-diff-visit-file-worktree | |
| <remap> |Prefix Command | |
| <remap> <magit-delete-thing> |magit-discard | |
| <remap> <magit-revert-no-commit> |magit-reverse | |
| <remap> <magit-visit-thing> |magit-diff-visit-file | |
*** Major Mode Bindings: [#u47d0c6e]
|~binding |~command |~remark |
| C-c |Prefix Command | |
| TAB |magit-section-toggle | |
| RET |magit-visit-thing | |
| C-w |magit-copy-section-value | |
| C-x |Prefix Command | |
| ESC |Prefix Command | |
| SPC |magit-diff-show-or-scroll-up | |
| ! |magit-run-popup | |
| $ |magit-process-buffer | |
| + |magit-diff-more-context | |
| - |magit-diff-less-context | |
| 0 |magit-diff-default-context | |
| 1 |magit-section-show-level-1 | |
| 2 |magit-section-show-level-2 | |
| 3 |magit-section-show-level-3 | |
| 4 |magit-section-show-level-4 | |
| 5 .. 9 |digit-argument | |
| : |magit-git-command | |
| < |beginning-of-buffer | |
| > |end-of-buffer | |
| ? |magit-dispatch-popup | |
| A |magit-cherry-pick-popup |git cherry-pic の操作メニューを表示 |
| B |magit-bisect-popup | |
| D |magit-diff-refresh-popup | |
| E |magit-ediff-popup |git diff の操作メニューを表示する |
| F |magit-pull-popup |pull の操作メニュー・・・は表示されないが、 &br;''F u'': magit-pull-from-upstream &br;''F p'': magit-pull-from-pushremote &br;''F e'': magit-pull-branch &br;がそれぞれ実行出来る。 |
| G |magit-refresh-all | |
| I |magit-gitignore-locally | |
| L |magit-log-refresh-popup | |
| M |magit-remote-popup |git remote の操作メニューを表示する |
| O |magit-subtree-popup | |
| P |magit-push-popup |git push の操作メニューを表示 |
| S |magit-stage-modified | |
| T |magit-notes-popup | |
| U |magit-unstage-all |stage されている全てのファイルを unstage する |
| V |magit-revert-popup | |
| W |magit-patch-popup | |
| X |magit-reset-popup |git reset の操作メニューを表示する |
| Y |magit-cherry | |
| Z |magit-stash-popup |git stash の操作メニューを表示する |
| ^ |magit-section-up | |
| b |magit-branch-popup | |
| c |magit-commit-popup |git commit の操作メニューを表示する |
| d |magit-diff-popup | |
| e |magit-ediff-compare | |
| f |magit-fetch-popup | |
| g |magit-refresh | |
| h |magit-dispatch-popup | |
| i |magit-gitignore | |
| j |Prefix Command | |
| k |magit-delete-thing | |
| l |magit-log-popup |git log の操作メニューを表示する |
| m |magit-merge-popup | |
| n |magit-section-forward | |
| o |magit-submodule-popup | |
| p |magit-section-backward | |
| q |magit-mode-bury-buffer | |
| r |magit-rebase-popup | |
| s |magit-stage-file |選択中のファイルを stage する |
| t |magit-tag-popup |git tag の操作メニューを表示する |
| u |magit-unstage-file |選択中のファイルを unstage する |
| v |magit-revert-no-commit | |
| w |magit-am-popup | |
| x |magit-reset | |
| y |magit-show-refs-popup |branch 操作の操作メニューを表示。機能としては v.2.1.0 での magit-branch-popup に近い。 |
| z |magit-stash-popup |git stash の操作メニューを表示 |
| DEL |magit-diff-show-or-scroll-down | |
| S-SPC |scroll-down-command | |
| <C-tab> |magit-section-cycle | |
| <M-tab> |magit-section-cycle-diffs | |
| <backtab> |magit-section-cycle-global | |
| <remap> |Prefix Command | |
| <s-tab> |magit-section-cycle-global | |
| <remap> <dired-jump> |magit-dired-jump | |
| j f |Prefix Command | |
| j n |magit-jump-to-untracked | |
| j p |Prefix Command | |
| j s |magit-jump-to-staged | |
| j t |magit-jump-to-tracked | |
| j u |magit-jump-to-unstaged | |
| j z |magit-jump-to-stashes | |
| C-c C-c |magit-dispatch-popup | |
| C-c C-e |magit-dispatch-popup | |
| C-x 4 |Prefix Command | |
| C-x a |magit-add-change-log-entry | |
| M-RET |magit-dired-jump | |
| M-1 |magit-section-show-level-1-all | |
| M-2 |magit-section-show-level-2-all | |
| M-3 |magit-section-show-level-3-all | |
| M-4 |magit-section-show-level-4-all | |
| M-n |magit-section-forward-sibling | |
| M-p |magit-section-backward-sibling | |
| M-w |magit-copy-buffer-revision | |
| <remap> <evil-next-line> |evil-next-visual-line | |
| <remap> <evil-previous-line> |evil-previous-visual-line | |
| j p p |magit-jump-to-unpushed-to-pushremote | |
| j p u |magit-jump-to-unpushed-to-upstream | |
| j f p |magit-jump-to-unpulled-from-pushremote | |
| j f u |magit-jump-to-unpulled-from-upstream | |
| C-x 4 a |magit-add-change-log-entry-other-window | |
//=============================================================================
** diff [#s6cb8ceb]
- リポジトリと差分のあるファイルのファイル名の上で "e" を type すると、emacs の ediff を利用した差分編集画面が起動する。
- この diff の画面は、ある時期に 2ペインから3ペインに変更されているが、これは "e" に割り当てられた関数が変更されたため。
|~画面 |~関数 |
|2ペイン |magit-ediff-compare |
|3ペイン |magit-ediff-dwim |
- 最新の magit で、差分編集を以前の2ペインにしたい場合は、magit を読み込んだあとの方で、以下を記述する
(define-key magit-mode-map "e" 'magit-ediff-compare)
-- これで、若干面倒ではあるが(その代わり比較対象をどのブランチにするかなど、手動で都度選べるようにもなる)、2ペインの diff が使えるようになる。
-- 但し、conflict 解決の場合に magit-diff-compare を起動すると、(マージや rebase による)conflict 前後の比較ではなく、conflict した結果と現在の HEAD との比較となってしまう。この場合には magit-ediff-dwim を起動するようにする。~
→ ''"e"'' と ''"E"'' で両者を使い分けると良いだろう。