2016-09-10 13:44:25 +00:00
#+TITLE : GitHub layer
2015-06-10 16:44:30 +00:00
[[file:img/github.png ]]
2016-03-31 02:59:55 +00:00
* Table of Contents :TOC_4_gh:noexport:
- [[#description ][Description ]]
- [[#features ][Features: ]]
- [[#install ][Install ]]
- [[#layer ][Layer ]]
2016-03-29 20:01:48 +00:00
- [[#git-configuration ][Git configuration ]]
2016-03-31 02:59:55 +00:00
- [[#key-bindings ][Key Bindings ]]
- [[#magit-gh-pulls ][magit-gh-pulls ]]
- [[#gistel ][gist.el ]]
- [[#clone-repositories ][Clone repositories ]]
- [[#browse-files ][Browse files ]]
2015-06-10 16:44:30 +00:00
* Description
2016-09-10 13:44:25 +00:00
This layers adds support for [[http://github.com ][GitHub ]].
2015-06-10 16:44:30 +00:00
2015-06-10 21:16:01 +00:00
** Features:
2016-09-10 13:44:25 +00:00
- [[https://github.com/sigma/magit-gh-pulls ][magit-gh-pulls ]]: handy =magit= add-on to manage GitHub pull requests.
- [[https://github.com/defunkt/gist.el ][gist.el ]]: full-featured mode to browse and post GitHub gists.
- [[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.
2016-09-10 13:44:25 +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
2016-01-06 05:21:55 +00:00
To use this configuration layer, add it to your =~/.spacemacs= . You will need to
add =github= to the existing =dotspacemacs-configuration-layers= list in this
file.
2015-06-10 16:44:30 +00:00
2016-03-29 20:01:48 +00:00
** Git configuration
You will need to generate a [[https://github.com/settings/tokens ][personal access token ]] on GitHub. This token should
have the =gist= and =repo= permissions. Once this token is created, it needs to
be added to your =~/.gitconfig=
2015-06-10 16:44:30 +00:00
2016-03-29 20:01:48 +00:00
#+BEGIN_SRC sh
git config --global github.oauth-token <token >
#+END_SRC
* Key Bindings
2015-06-10 16:44:30 +00:00
** magit-gh-pulls
In a =magit status= buffer (~SPC g s~ ):
2016-07-14 10:08:16 +00:00
| Key Binding | Description |
|-------------+-------------------------------------------------------------|
| ~# c~ | create a pull request |
2016-07-27 02:54:57 +00:00
| ~# g~ | get a list of (or reload) all PRs in the current repository |
2016-07-14 11:26:06 +00:00
| ~# f~ | fetch the commits associated with the current PR at point |
2016-07-14 10:08:16 +00:00
| ~# b~ | create a branch for the current PR at point |
| ~# m~ | merge the PR with current branch at point |
| ~# d~ | show a diff of the current pull request at point |
2016-07-14 11:26:06 +00:00
| ~# o~ | open PR at point in browser |
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
2016-07-05 03:17:30 +00:00
| Key Binding | Description |
|---------------+----------------------------------------------------------|
| ~SPC g h c /~ | search for a repository to clone it |
| ~SPC g h c c~ | clone and optionally fork repository |
| ~SPC g h c r~ | add a remote that is an existing fork of selected remote |
| ~SPC g h c f~ | fork remote in current user namespace |
| ~SPC g h c u~ | add upstream as remote |
2015-10-31 01:28:58 +00:00
2015-06-10 16:44:30 +00:00
** Browse files
| Key Binding | Description |
|-------------+--------------------------------------------------------------------|
2016-09-10 13:44:25 +00:00
| ~SPC g h o~ | browse to file on GitHub |