2015-06-10 16:44:30 +00:00
#+TITLE : Github contribution layer for Spacemacs
2015-11-08 18:04:44 +00:00
#+HTML_HEAD_EXTRA : <link rel="stylesheet" type="text/css" href="../../../css/readtheorg.css" />
2015-06-10 16:44:30 +00:00
[[file:img/github.png ]]
2015-10-30 11:20:58 +00:00
* Table of Contents :TOC_4_org:noexport:
- [[Description ][Description ]]
- [[Features: ][Features: ]]
- [[Install ][Install ]]
- [[Layer ][Layer ]]
- [[Key Bindings ][Key Bindings ]]
- [[magit-gh-pulls ][magit-gh-pulls ]]
- [[gist.el ][gist.el ]]
2015-10-31 01:28:58 +00:00
- [[Clone repositories ][Clone repositories ]]
2015-10-30 11:20:58 +00:00
- [[Browse files ][Browse files ]]
2015-06-10 16:44:30 +00:00
* Description
This layers adds support for [[http://github.com ][Github ]].
2015-06-10 21:16:01 +00:00
** Features:
2015-06-10 16:44:30 +00:00
- [[https://github.com/sigma/magit-gh-pulls ][magit-gh-pulls ]]: handy =magit= add-on to manage Github pull requests.
2015-06-26 05:42:04 +00:00
- [[https://github.com/defunkt/gist.el ][gist.el ]]: full-featured mode to browse and post Github gists.
2015-06-10 16:44:30 +00:00
- [[https://github.com/osener/github-browse-file ][github-browse-file ]] and [[https://github.com/sshaw/git-link ][git-link ]]: quickly browse github URL in your
2015-06-10 21:16:01 +00:00
browser.
2015-10-31 01:28:58 +00:00
- [[https://github.com/dgtized/github-clone.el ][Github clone ]] allows for easy cloning and forking of repositories.
2015-06-10 16:44:30 +00:00
* Install
** Layer
To use this contribution add it to your =~/.spacemacs=
#+BEGIN_SRC emacs-lisp
(setq-default dotspacemacs-configuration-layers '(github))
#+END_SRC
* Key Bindings
** magit-gh-pulls
In a =magit status= buffer (~SPC g s~ ):
| Key Binding | Description |
|-------------+-------------------------------------------------|
2015-11-02 05:16:13 +00:00
| ~# c~ | create a pull request |
| ~# g~ | get a list of all PRs in the current repository |
| ~# f~ | fetch the commits associated to the current PR |
| ~# b~ | create a branch for the current PR |
| ~# m~ | merge the PR with current branch |
2015-06-10 16:44:30 +00:00
Note that =magit-gh-pulls= will try to fast-forward the PRs whenever it is
possible.
** gist.el
| Key Binding | Description |
|-------------+-----------------------------------------------|
| ~SPC g g b~ | create a public gist with the buffer content |
| ~SPC g g B~ | create a private gist with the buffer content |
| ~SPC g g l~ | open the gist list buffer |
| ~SPC g g r~ | create a public gist with the region content |
| ~SPC g g R~ | create a private gist with the region content |
In the gist list buffer:
| Key Binding | Description |
|-------------+------------------------------|
| ~/~ | evil search |
| ~+~ | add buffer to gist |
| ~-~ | remove file for gist |
| ~b~ or ~o~ | open current gist in browser |
| ~f~ | fetch current gist |
| ~g~ | refresh the list |
| ~h~ | go left |
| ~j~ | go down |
| ~k~ | go up |
| ~K~ | kill current gist |
| ~l~ | go right |
| ~n~ | next search occurrence |
| ~N~ | next previous occurrence |
| ~v~ | =visual state= |
| ~V~ | =visual-line state= |
| ~y~ | print URL and copy it |
2015-10-31 01:28:58 +00:00
** Clone repositories
2015-11-02 05:16:13 +00:00
| Key Binding | Description |
|---------------+--------------------------------------|
| ~SPC g h C-c~ | clone and optionally fork repository |
2015-10-31 01:28:58 +00:00
2015-06-10 16:44:30 +00:00
** Browse files
| Key Binding | Description |
|-------------+--------------------------------------------------------------------|
2015-11-02 05:16:13 +00:00
| ~SPC g h c~ | browse to file on github/bitbucket/etc (on current line at commit) |
| ~SPC g h C~ | only copy the generated link on the kill ring |
| ~SPC g h l~ | browse to file on github/bitbucket/etc (on current line position) |
| ~SPC g h L~ | only copy the generated link on the kill ring |
| ~SPC g h o~ | browse to file on github |
2015-06-10 16:44:30 +00:00
*Notes:*
2015-06-12 01:23:07 +00:00
- You can use the universal argument ~SPC u~ to select a remote repository.
2015-06-10 16:44:30 +00:00
- You can use =git-link= on a region.
- When the link is opened, the URL is also copied in the kill ring, you can
2015-06-10 21:16:01 +00:00
override this behavior by setting the variable =git-link-open-in-browser= to
=nil= .