Helm Git project manager.
-
Display list of branches in project and provide related actions.
-
Provide git log view from branches source with related actions (diff, patches, reset, find file etc...)
-
Display the open buffers in project.
-
Display a status source showing state of project (modified files etc...).
-
Provide its own commit facilities with a mode to edit commit (commit, amend etc...)
-
Allow rebasing and provide a mode to edit rebase-todo files
-
Display stashes list and provide related actions.
-
Display a list of all files in project under git control.
-
Allow looking quickly at diff on modified files.
-
Allow switching to git status with your preferred frontend (vc-dir, magit,etc...)
-
Full integration of
git-grep
, allow also usage ofhelm-grep
(you can useack-grep
instead ofgrep
). -
Integrate usage of
gid
from id-utils. -
Full integration with
helm-find-files
, allow you to browse project unrelated to current-buffer. -
In addition, all actions of type files and buffers are provided.
-
We assume that you have
git
installed and that OSX users have solved any$PATH
issues that prevent them being able to callgit
from emacs. -
Ensure you are running at least >= Emacs-24.3.
-
Install
helm
according to the instructions on its repo page -
If you are using the MELPA package manager then
M-x list-packages
and installhelm-ls-git
. -
Or, if you are using
el-get
then invokeM-x el-get-install
and at theInstall package:
prompt typehelm-ls-git
and hit enter. -
Otherwise, clone this repo and put
helm-ls-git.el
somewhere on the emacsload-path
. -
Finally, add to your
.emacs.el
:
Assuming you are already using helm and it is installed properly (See Install helm)
(require 'helm-ls-git)
Use M-x helm-browse-project
or bind it to a key, for example:
(global-set-key (kbd "C-x C-d") 'helm-browse-project)
If you are using helm-find-files
you will be able to browse any git repo unrelated
to the current-buffer
:
M-x helm-find-files
navigate to some git repo and hit C-x C-d
You can also navigate in your git projects with M-x helm-projects-history
or bind it to a key:
(global-set-key (kbd "C-x r p") 'helm-projects-history)
If you want to use the helm-ls-git sources somewhere else, you can build them individually with functions
helm-ls-git-build-git-status-source
,
helm-ls-git-build-buffers-source
and helm-ls-git-build-ls-git-source
.
As these sources are built with their own classes, they can be configured with defmethod helm-setup-user-source
,
see FAQ.
Use helm-projects-history
or helm-browse-project
as a starting point.
-
By calling
helm-browse-project
in any buffer that is a part of a git repo (or if you have navigated to a git repo fromhelm-find-files
), you will be presented with a corresponding helm buffer containing a list of all the files currently in that same repository. In the usualhelm
style you can just type at the prompt in the minibuffer and see the results narrow according to the input of your search pattern. -
When the helm-buffer is active and displaying results, the user can invoke
C-]
to toggle between showing filenames or full pathnames for the data that helm is listing.
NOTE: You can also use directly helm-ls-git-ls
, but note that in
this case your project will NOT be recorded in project history and BTW
not available through M-x helm-projects-history
.
Another way to record your projects is using bookmarks from helm-find-files
(C-x r m
).
Have fun!