# GitSavvy Documentation You've found GitSavvy's online documentation. All documentation is in markdown. Beyond what you might expect, if you see a link to a different page, you can browse to that page by pressing **SUPER-Enter** while the link is under your cursor (**CTRL-Enter** on Windows). To return to the previous page, press **SUPER-Backspace** (**CTRL-Backspace** on Windows). If you run into any issues not addressed here, please feel free to [open an issue](https://github.com/timbrel/GitSavvy/issues) and ask for help! ## Highlighted Features - [Inline-diff](staging.md#git-diff-current-file-inline) - [Status view](status.md) - [GitHub integration](github.md) - [git-flow support](flow.md) ## Command Palette ### High-level commands - [git: status](status.md) - [git: init](misc.md#git-init) ### (Un)Staging changes - [git: diff current file inline](staging.md#git-diff-current-file-inline) - [git: diff current file inline (cached)](staging.md#git-diff-current-file-inline-cached) - [git: quick stage](staging.md#git-quick-stage) - [git: diff](staging.md#git-diff) - [git: diff cached](staging.md#git-diff-cached) ### Committing - [git: commit](commit.md#git-commit) - [git: commit including unstaged files](commit.md#git-commit-including-unstaged-files) - [git: amend previous commit](commit.md#git-amend-previous-commit) - [git: fixup from stage](commit.md#git-fixup-from-stage) - [git: quick commit](commit.md#git-quick-commit) - [git: quick stage current file and commit](commit.md#git-quick-stage-current-file-and-commit) - [git: quick stage current file and fixup](commit.md#git-quick-stage-current-file-and-fixup) ## Stashing - [git: stash save](stash.md#git_stash_save) - [git: stash save including untracked files](stash.md#git_stash_save_including_untracked_files) - [git: stash save staged changes only](stash.md#git_stash_save_staged_changes_only) - [git: stash show](stash.md#git_stash_show) - [git: stash apply](stash.md#git_stash_apply) - [git: stash pop](stash.md#git_stash_pop) - [git: stash drop](stash.md#git_stash_drop) ### Branch management - [git: checkout](branch_mgmt.md#git-checkout) - [git: checkout new branch](branch_mgmt.md#git-checkout-new-branch) - [git: checkout current file](branch_mgmt.md#git-checkout-current-file) - [git: merge](branch_mgmt.md#git-merge) - [git: abort merge](branch_mgmt.md#git-abort-merge) - [git: restart merge for file...](branch_mgmt.md#git-restart-merge-for-file) ### Tag management - [git: tags](tag_mgmt.md#git-tags) - [git: quick tag](tag_mgmt.md#git-quick-tag) - [git: smart tag](tag_mgmt.md#git-smart-tag) ### Modifying history - [git: rebase](rebase.md) - [git: rebase from terminal](rebase.md#git-rebase-from-terminal) - [git: amend previous commit](commit.md#git-amend-previous-commit) ### Interacting with remotes - [git: checkout remote branch as local](remotes.md#git-checkout-remote-branch-as-local) - [git: fetch](remotes.md#git-fetch) - [git: pull](remotes.md#git-pull) - [git: push](remotes.md#git-push) - [git: push to branch](remotes.md#git-push-to-branch) - [git: push to branch name](remotes.md#git-push-to-branch-name) ### History - [git: log](history.md#git-log) - [git: log current file](history.md#git-log-current-file) - [git: graph](history.md#git-graph) - [git: graph current file](history.md#git-graph-current-file) - [git: compare against ...](history.md#git-compare-against-) - [git: compare current file against ...](history.md#git-compare-current-file-against-) - [git: blame current file](history.md#git-blame-current-file) - [git: reset](misc.md#git-reset) - [git: reset (reflog)](misc.md#git-reset-reflog) - [git: reset to branch](misc.md#git-reset-to-branch) - [git: cherry-pick](misc.md#git-cherry-pick) ### Ignoring files - [git: ignore current file](ignoring.md#git-ignore-current-file) - [git: ignore pattern](ignoring.md#git-ignore-pattern) - [git: assume file unchanged](ignoring.md#git-assume-file-unchanged) - [git: restore file assumed unchanged](ignoring.md#git-restore-file-assumed-unchanged) ### Debug - [GitSavvy: reload modules (debug)](debug.md#gitsavvy-reload-modules-debug) - [GitSavvy: start logging](debug.md#gitsavvy-start-logging) - [GitSavvy: stop logging](debug.md#gitsavvy-stop-logging) - [GitSavvy: view recorded log](debug.md#gitsavvy-view-recorded-log) ### Miscellaneous - [git: mv current file](misc.md#git-mv-current-file) ## Special Views - [Status view](status.md#overview) - [Inline-diff view](staging.md#git-diff-current-file-inline) - [Diff view](staging.md#git-diff) - [Commit view](commit.md) - [Blame view](history.md#git-blame-current-file) - [Log-graph view](history.md#git-graph) ## GitHub Integration - [github: open file on remote](github.md#github-open-file-on-remote) - [github: open repo](github.md#github-open-repo) - [github: open issues](github.md#github-open-issues) - [github: create pull request](github.md#github-create-pull-request) - [github: review pull request](github.md#github-review-pull-request) - [issues integration in commit view](github.md#issues-integration) - [contributors integration in commit view](github.md#contributors-integration) ## Custom Commands If you have the need, you can add your own commands that take advantage of GitSavvy's access to your repo. To do so, create a new `User.sublime-commands` file in your `User` Package directory. Then, add an entry like so: ```javascript [ { "caption": "git: pull --rebase", "command": "gs_custom", "args": { "output_to_panel": true, "args": ["pull", "--rebase"], "start_msg": "Starting pull (rebase)...", "complete_msg": "Pull complete." } } ] ``` For more information see [custom commands documentation](custom.md) ## [git-flow](https://github.com/nvie/gitflow) Support - [flow: init](flow.md#flow-init) - [flow: feature/release/hotfix/support start](flow.md#flow-featurereleasehotfixsupport-start) - [flow: feature/release/hotfix/support finish](flow.md#flow-featurereleasehotfixsupport-finish) - [flow: feature/release/hotfix publish](flow.md#flow-featurereleasehotfix-publish) - [flow: feature/release track](flow.md#flow-featurerelease-track) - [flow: feature pull](flow.md#flow-feature-pull) ## Settings ### Settings for Views For all syntax specific view we have a settings file. These are nothing extra from syntax specific settings. From any view you can click `super+,` on Mac or `ctrl+,` on Windows and Linux. ### Editing Settings To open the GitSavvy settings, simply run the `Preferences: GitSavvy Settings` command from the command palette. The default settings are documented with helpful inline comments. GitSavvy also supports project specific settings, run the `Preference: GitSavvy Project Settings` command and add the key `"GitSavvy"` as follows ``` { "settings": { "GitSavvy": { // GitSavvy settings go here } } } ``` [Preferences Editor](https://packagecontrol.io/packages/Preferences%20Editor) is really good package for editing you settings. ### Key Bindings GitSavvy's default keyboard shortcuts are defined in the package's `.sublime-keymap` files: - [Default.sublime-keymap](https://github.com/timbrel/GitSavvy/blob/master/Default.sublime-keymap) - [Default (Windows).sublime-keymap](https://github.com/timbrel/GitSavvy/blob/master/Default%20(Windows).sublime-keymap) - [Default (OSX).sublime-keymap](https://github.com/timbrel/GitSavvy/blob/master/Default%20(OSX).sublime-keymap) - [Default (Linux).sublime-keymap](https://github.com/timbrel/GitSavvy/blob/master/Default%20(Linux).sublime-keymap) The key bindings can be edited (and new ones added) via [user defined `.sublime-keymap` files](http://docs.sublimetext.info/en/latest/reference/key_bindings.html). These can be accessed easily by running the "Preferences: Key Bindings" command in the command palette. Here is an example of defining ctrl+shift+s to run the `git: status` dashboard on a MacOS system: _**${ST3_PACKAGE_DIR}/User/Default (OSX).sublime-keymap**_ ```json [ { "keys": ["ctrl+shift+s"], "command": "gs_show_status" } ] ``` The full list of GitSavvy's commands can be seen in [Default.sublime-commands](https://github.com/timbrel/GitSavvy/blob/master/Default.sublime-commands).