1 # git-cola: The highly caffeinated Git GUI
3 git-cola is a powerful Git GUI with a slick and intuitive user interface.
5 Copyright (C) 2007-2015, David Aguilar and contributors
7 This program is free software: you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 2 of the License, or
10 (at your option) any later version.
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License
18 along with this program. If not, see <http://www.gnu.org/licenses/>.
22 Screenshots are available on the
23 [git-cola screenshots page](https://git-cola.github.io/screenshots.html).
27 apt-get install git-cola python-pyinotify
29 New releases are available on the
30 [git-cola download page](https://git-cola.github.io/downloads.html).
34 git clone git://github.com/git-cola/git-cola.git
36 [git-cola on github](https://github.com/git-cola/git-cola)
38 [git-cola google group](http://groups.google.com/group/git-cola/)
46 * [git](http://git-scm.com/) 1.6.3 or newer.
48 * [Python](http://python.org/) 2.6, 2.7, and 3.2 or newer.
50 * [PyQt4](http://www.riverbankcomputing.co.uk/software/pyqt/download) 4.4 or newer
52 * [argparse](https://pypi.python.org/pypi/argparse) 1.1 or newer.
53 argparse is part of the stdlib in Python 2.7; install argparse separately if
54 you are running on Python 2.6.
58 *git-cola* enables additional features when the following
59 Python modules are installed.
61 [pyinotify](https://github.com/seb-m/pyinotify) 0.7.1 or newer
62 enables inotify support on Linux.
64 [send2trash](https://github.com/hsoft/send2trash) enables cross-platform
65 "Send to Trash" functionality.
67 # BREWING INSTRUCTIONS
71 You don't need to install *git-cola* to run it.
72 Running *git-cola* from its source tree is the easiest
73 way to try the latest version.
75 git clone git://github.com/git-cola/git-cola.git
80 Having *git-cola*'s *bin/* directory in your path allows you to run
81 *git-cola* like a built-in Git command:
90 Normally you can just do "make install" to install *git-cola*
91 in your `$HOME` directory (`$HOME/bin`, `$HOME/share`, etc).
92 If you want to do a global install you can do
94 make prefix=/usr install
96 There are also platform-specific installation methods.
97 You'll probably want to use one of these anyways since they
98 have a nice side-effect of installing *git-cola*'s PyQt4
99 and argparse dependencies.
103 Linux is it! Your distro has probably already packaged git-cola.
104 If not, please file a bug against your distribution ;-)
112 apt-get install git-cola
124 Use the [one-click install link](http://software.opensuse.org/package/git-cola).
128 [Homebrew](http://mxcl.github.com/homebrew/) is the easiest way to install
129 git-cola, *Qt4* and *PyQt4*.
131 brew install git-cola
133 Once brew has installed git-cola you can:
137 `git clone git://github.com/git-cola/git-cola.git && cd git-cola`
139 2. Build the git-cola.app application bundle
143 3. Copy it to _/Applications_
145 `rm -fr /Applications/git-cola.app && cp -r git-cola.app /Applications`
147 ## WINDOWS INSTALLATION
149 Download the latest stable Git, Python 2.x, and Py2x-PyQt4 installers
151 * [msysGit](http://msysgit.github.com/)
153 * [Python](http://python.org/download/)
155 * [PyQt](http://www.riverbankcomputing.co.uk/software/pyqt/download/)
157 * [git-cola Installer](https://github.com/git-cola/git-cola/downloads)
159 Once these are installed you can run *git-cola* from the Start menu or
160 by double-clicking on the `git-cola.pyw` script.
162 If you are developing *git-cola* on Windows you can use `python.exe` to run
163 *git-cola* directly from source.
165 python.exe ./bin/git-cola
167 If you want to build the `git-cola Installer` yourself run the provided script
169 ./contrib/win32/create-installer.sh
171 You have to make sure that the file */share/InnoSetup/ISCC.exe* exists.
172 That is normally the case when you run the *msysGit bash* and not the
173 *Git for Windows bash* (look [here](http://msysgit.github.com/) for the differences).
177 * [HTML documentation](https://git-cola.readthedocs.org/en/latest/)
179 * [git-cola manual](share/doc/git-cola/git-cola.rst)
181 * [git-dag manual](share/doc/git-cola/git-dag.rst)
183 * [Keyboard shortcuts](https://git-cola.github.io/share/doc/git-cola/hotkeys.html)
185 * [Contributing guidelines](CONTRIBUTING.md)
189 *git-cola* ships with an interactive rebase editor called *git-xbase*.
190 *git-xbase* can be used to reorder and choose commits and is typically
191 launched through the *git-cola*'s "Rebase" menu.
193 *git-xbase* can also be launched independently of the main *git-cola* interface
194 by telling `git rebase` to use it as its editor:
196 GIT_SEQUENCE_EDITOR=$PWD/share/git-cola/bin/git-xbase git rebase -i origin/master
198 You can also launch *git-xbase* via the *git-cola* rebase sub-command
199 (as well as various other sub-commands):
201 ./bin/git-cola rebase origin/master
205 The *git-cola* command exposes various sub-commands that allow you to quickly
206 launch tools that are available from within the *git-cola* interface.
207 For example, `./bin/git-cola find` launches the file finder,
208 and `./bin/git-cola grep` launches the grep tool.
210 See `./bin/git-cola --help-commands` for the full list of commands.
212 $ ./bin/git-cola --help-commands
215 {cola,am,archive,branch,browse,classic,config,
216 dag,diff,fetch,find,grep,merge,pull,push,
217 rebase,remote,search,stash,tag,version}
221 {cola,am,archive,branch,browse,classic,config,
222 dag,diff,fetch,find,grep,merge,pull,push,
223 rebase,remote,search,stash,tag,version}
226 am apply patches using "git am"
227 archive save an archive
228 branch create a branch
229 browse browse repository
230 classic browse repository
231 config edit configuration
238 pull pull remote branches
239 push push remote branches
240 rebase interactive rebase
242 search search commits
243 stash stash and unstash changes
245 version print the version