Skip to content
John Bachir edited this page Jun 9, 2024 · 34 revisions

Sublime Text: git plugin

I like being able to quickly ask my editor "what's the history of this file?", without having to jump to another window. This plugin implements just enough git commands to be useful to me at the moment.

I may add more, I may not. If you submit a pull request implementing something I missed, I'll almost certainly accept it.

Installation

Package Control

The easiest way to install this is with Package Control.

  • If you just went and installed Package Control, you probably need to restart Sublime Text 2 before doing this next bit.
  • Bring up the Command Palette (Command+Shift+p on OS X, Control+Shift+p on Linux/Windows).
  • Select "Package Control: Install Package" (it'll take a few seconds)
  • Select Git when the list appears.

Package Control will automatically keep Git up to date with the latest version.

More complex methods

First, you need to have git installed and in your $PATH. Afterwards you may need to restart Sublime Text 2 before the plugin will work.

OSX

# some installs may have the version in the directory name: cd ~/Library/Application\ Support/Sublime\ Text\ 3
$ cd ~/Library/Application\ Support/Sublime\ Text/Packages
$ git clone https://github.com/kemayo/sublime-text-git.git Git

Linux (Ubuntu like distros)

$ cd ~/.config/sublime-text-2/Packages/
$ git clone https://github.com/kemayo/sublime-text-git.git Git

Windows 7:

Copy the directory to: "C:\Users\<username>\AppData\Roaming\Sublime Text 2\Packages"

Windows XP:

Copy the directory to: "C:\Documents and Settings\<username>\Application Data\Sublime Text 2\Packages"

Settings

This plugin has a few settings. If you create a file called Git.sublime-settings in your User package you can override them. Feel free to copy the Git.sublime-settings file from the Git package directory to your User package if you don't want to mess with getting the initial JSON syntax right.

  • save_first: whether to save files before running any git operation
  • git_command: a path to your git binary if it's not in the $PATH available to Python (you'll get an error message if you need to set this)
  • (format for windows: "git_command": "c:/users/myuserdir/dev/git/bin/git.exe". If you have spaces in your git binary's path, you may need to use the old tilda-escaped version, like: "C:/Progra~2/Git/bin/git.exe".)

What's supported?

Command Palette

Status

Status display

Show the status of the repo. Choosing a file gives you a diff of it.

Log viewing

Log view

You can view the log, for the current file or for the whole repo.

Filtered log view

You can use fuzzy matching on the log details while viewing the log to find interesting commits.

Commit details

You can see more details about the given commit. This is either restricted to just your current file, or for all files in the repo, depending on how you got to it.

Diff viewing

Diff view

Show uncommitted changes in the current file or the whole repo. Displays with appropriate syntax highlighting.

Blame

Ugly blame view

Get an annotated version of the entire current file, or just the selected lines. (It's ugly now. I might fix it.)

Annotate

Let Sublime annotate your changes while you are working.

Annotation 1 Annotation 2 Annotation 3

You need to add some custom theme scopes to make them appear in a different color than white. You can copy these sample colors into your theme file, for example ".../Packages/Color Scheme - Default/Monokai.tmTheme"

Add files

Choose from a list of modified files to stage for a commit. Add files

Add files lets you choose which files to add. You can either choose individual files or you can choose to add all the files.

Commit

After adding files, commit them all with a message. (Close the file without saving it to commit)

Quick Commit

Add and commit the current file, after asking for a message.