aboutsummaryrefslogtreecommitdiff
path: root/config/emacs/emacs.d/lisp/init-git.el
blob: 9416bebfacf77f6add038c709f25cfc36ad198ae (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
;;; init-git --- Git and Magit Customization
;;; Commentary:
;;; Code:

(defvar magit)
(defvar magit-status-mode-map)
(defvar magit-status)
(defvar magit-mode-quit-window)
(defvar magit-toplevel)
(defvar magit-read-string-ns)
(defvar magit-remote-arguments)
(defvar magit-get)
(defvar magit-remote-add)
(defvar magit-define-popup-action)
(defvar gitignore-mode)
(defvar gitconfig-mode)
(defvar git-timemachine)
(defvar forge)

(use-package gitignore-mode)
(use-package gitconfig-mode)
(use-package git-timemachine
  :defer 1
  :diminish)

(use-package forge)

(use-package magit
  :preface
  (defun magit-dired-other-window ()
    (interactive)
    (dired-other-window (magit-toplevel)))
  :commands (magit-clone
             magit-toplevel
             magit-read-string-ns
             magit-remote-arguments
             magit-get
             magit-remote-add
             magit-define-popup-action)
  :bind (("C-x g" . magit-status)
         ("C-x M-G" . magit-dispatch-popup)
         :map magit-mode-map
         ("C-o" . magit-dired-other-window))
  :init
  (setq-default magit-diff-refine-hunk t)
  (defvar magit-last-seen-setup-instructions "1.4.0")
  :config
  (fullframe magit-status magit-mode-quit-window)
  )

(use-package magit-extras
  :after magit
  :init
  (setq magit-pop-revision-stack-format '("%h (\"%s\", %ad)")))

(use-package with-editor)

;; Some added additions from
;; https://www.reddit.com/r/emacs/comments/96r8us/tip_how_to_get_started_with_git/
(use-package git-commit
  :after with-editor magit
  :hook
  (git-commit-mode . my/git-commit-config-setup)
  :preface
  (defun my/git-commit-config-setup ()
    "Configures several commit message settings."
    (goto-address-mode)
    (set-fill-column 72)
    (setq-local comment-auto-fill-only-comments nil)
    (global-whitespace-mode nil))
  :custom
  (git-commit-summary-max-length 50))

(provide 'init-git)
;;; init-git.el ends here