Difference between revisions of "Git"

From WikEmacs
Jump to navigation Jump to search
Line 39: Line 39:
 
== Commit on every change ==
 
== Commit on every change ==
  
[git-auto-commit-mode | http://melpa.org/#/git-auto-commit-mode] (on MELPA) is a minor mode that tries to commit a change to a file after every save. It can also push automatically.
+
[http://melpa.org/#/git-auto-commit-mode git-auto-commit-mode] (on MELPA) is a minor mode that tries to commit a change to a file after every save. It can also push automatically.
  
 
= See also =
 
= See also =

Revision as of 17:10, 14 October 2015

Packages to interfere with the git version control system.


Full interfaces

Magit

Magit is a great Emacs mode for working with Git repositories. It provides a convenient interface for the most common Git operations. Please visit its own Magit page.

Specific use cases

Git blame

Git-blame is a package, available in ELPA, which provides a minor mode for incremental blame.

Show last commit message for current line

This package provides a function called git-messenger:popup-message that when called will pop-up the last git commit message for the current line. This uses the git-blame tool internally.

Available in ELPA.


Highlight uncommited changes

Git-gutter is an extension to highlight uncommitted changes on the left side of the window, indicating wether a line has been inserted, modified or deleted, and allowing you to jump between and revert them selectively. diff-hl does it too and works with Git, Mercurial, Bazaar and Svn, and it provides similar functionnality for dired. Both are available in ELPA. They are Tramp-aware.

After installation, call the minor modes or enable them:

   (add-hook 'python-mode-hook 'git-gutter-mode)

Jump between changes

To jump between changes: M-x git-gutter:next-hunk or M-x diff-hl-next-hunk.

Git-gutter.png

Commit on every change

git-auto-commit-mode (on MELPA) is a minor mode that tries to commit a change to a file after every save. It can also push automatically.

See also

See also the full list of packages to interact with Github, Gitlab and others in the Github page.