diff --git a/contrib/git/README.md b/contrib/git/README.md
index 68e04d9a0..e8d2f9bab 100644
--- a/contrib/git/README.md
+++ b/contrib/git/README.md
@@ -17,6 +17,8 @@
- [Git](#git)
- [Working with Git](#working-with-git)
- [Magit](#magit)
+ - [Commit message edition buffer](#commit-message-edition-buffer)
+ - [Interactive rebase buffer](#interactive-rebase-buffer)
- [Quick guide for recurring use cases in Magit](#quick-guide-for-recurring-use-cases-in-magit)
- [Git time machine](#git-time-machine)
- [Git gutter](#git-gutter)
@@ -191,11 +193,43 @@ Here are the often used bindings inside a `status buffer`:
C-v | revert item at point
z z | stash changes
-In a commit message buffer press `C-c C-c` to commit the changes with the
-entered message. `C-c C-k` will discard the commit message.
+### Commit message edition buffer
-**Note:** Sometimes you will be asked about reverting the commit buffer,
-you can answer `y` with no issue.
+In a commit message buffer press C-c C-c or SPC m c c
+to commit the changes with the entered message.
+Pressing C-c C-k or SPC m k will discard the commit
+message.
+
+ Key Binding | Description
+----------------------|--------------------------------------------------------
+h | go left
+j | go down
+k | go up
+l | go right
+SPC m c c | commit
+SPC m k | abort
+
+### Interactive rebase buffer
+
+ Key Binding | Description
+----------------------|--------------------------------------------------------
+c | pick
+e | edit
+f | fixup
+h | go left
+j | go down
+J | move line down
+k | go up
+K | move line up
+C-k | kill line
+l | go right
+r | reword
+s | squash
+u | undo
+x | execute
+y | insert
+SPC m c c | rebase
+SPC m k | abort
### Quick guide for recurring use cases in Magit
diff --git a/contrib/git/packages.el b/contrib/git/packages.el
index a4406d541..90771bcd9 100644
--- a/contrib/git/packages.el
+++ b/contrib/git/packages.el
@@ -139,8 +139,16 @@ which require an initialization must be listed explicitly in the list.")
(defun git/init-git-rebase-mode ()
(use-package git-rebase-mode
:defer t
- :init (evilify git-rebase-mode git-rebase-mode-map
- "y" 'git-rebase-insert)))
+ :config
+ (progn
+ (evilify git-rebase-mode git-rebase-mode-map
+ "J" 'git-rebase-move-line-down
+ "K" 'git-rebase-move-line-up
+ "u" 'git-rebase-undo
+ "y" 'git-rebase-insert)
+ (evil-leader/set-key-for-mode 'git-rebase-mode
+ "mcc" 'git-rebase-server-edit
+ "mk" 'git-rebase-abort))))
(defun git/init-git-timemachine ()
(use-package git-timemachine