1GIT-COLA(1)                        git-cola                        GIT-COLA(1)
2
3
4

NAME

6       git-cola - The highly caffeinated Git GUI
7

SYNOPSIS

9       git cola [options] [sub-command]
10

DESCRIPTION

12       Git Cola is a sleek and powerful Git GUI.
13

OPTIONS

15   –amend
16       Start git cola in amend mode.
17
18   –prompt
19       Prompt for a Git repository.  Defaults to the current directory.
20
21   -r, –repo <path>
22       Open the Git repository at <path>.  Defaults to the current directory.
23
24   -s, –status-filter <filter>
25       Apply the path filter to the status widget.
26
27   –version
28       Print the git cola version and exit.
29
30   -h, –help
31       Show usage and optional arguments.
32
33   –help-commands
34       Show available sub-commands.
35

SUB-COMMANDS

37   am
38       Apply patches.
39
40   archive
41       Export tarballs from Git.
42
43   branch
44       Create branches.
45
46   browse
47       Browse tracked files.
48
49   config
50       Configure settings.
51
52   dag
53       Start the git dag Git history browser.
54
55   diff
56       Diff changed files.
57
58   fetch
59       Fetch history from remote repositories.
60
61   grep
62       Use git grep to search for content.
63
64   merge
65       Merge branches.
66
67   pull
68       Fetch and merge remote branches.
69
70   push
71       Push branches to remotes.
72
73   rebase
74       Start an interactive rebase.
75
76   remote
77       Create and edit remotes.
78
79   search
80       Search for commits.
81
82   stash
83       Stash uncommitted modifications.
84
85   tag
86       Create tags.
87
88   version
89       Print the git cola version.
90

CONFIGURE YOUR EDITOR

92       The  editor  used  by Ctrl-e is configured from the Preferences screen.
93       The environment variable $VISUAL is consulted when no editor  has  been
94       configured.
95
96       ProTip:  Configuring  your editor to gvim -f -p will open multiple tabs
97       when editing files.  gvim -f -o uses splits.
98
99       git cola is {vim, emacs, textpad, notepad++}-aware.  When you select  a
100       line  in  the  grep  screen and press any of Enter, Ctrl-e, or the Edit
101       button, you are taken to that exact line.
102
103       The editor preference is saved in the  gui.editor  variable  using  git
104       config.
105

KEYBOARD SHORTCUTS

107       git cola has many useful keyboard shortcuts.
108
109       Many  of git cola’s editors understand vim-style hotkeys, eg. {h,j,k,l}
110       for navigating in the diff, status, grep, and file browser widgets.
111
112       {d,u}  move  down/up  one  half  page  at  a  time  (similar  to  vim’s
113       ctrl-{d,u}).   The space and shift-space hotkeys are mapped to the same
114       operations.
115
116       Shift-{j,k,d,u,f,b,page-up,page-down,left,right,up,down} can be be used
117       in the diff editor to select lines while navigating.
118
119       s  is  a useful hotkey in the diff editor.  It stages/unstages the cur‐
120       rent selection when a selection is present.  When nothing is  selected,
121       the  diff  hunk  at  the  current text cursor position is staged.  This
122       makes it very easy to review changes by selecting  good  hunks  with  s
123       while navigating down and over hunks that are not going to be staged.
124
125       Ctrl-u  in  the  diff  editor  reverts unstaged edits, and respects the
126       selection.  This is useful for  selectively  reverted  edits  from  the
127       worktree.   This same hotkey reverts the entire file when used from the
128       status tool.
129
130       Ctrl-s in the diff editor and status tools stages/unstages  the  entire
131       file.
132
133       You  can  see  the  available shortcuts by pressing pressing the ? key,
134       choosing Help -> Keyboard shortcuts from the main menu, or by  consult‐
135       ing the git cola keyboard shortcuts reference.
136

TOOLS

138       The  git cola interface is composed of various cooperating tools.  Dou‐
139       ble-clicking a tool opens it in its own subwindow.  Dragging it  around
140       moves and places it within the main window.
141
142       Tools  can  be  hidden and rearranged however you like.  git cola care‐
143       fully remembers your window layout and restores it the next time it  is
144       launched.
145
146       The Control-{1, 2, 3, …} hotkey gives focus to a specific tool.  A hid‐
147       den tool can be re-opened using the Tools menu or the Shift+Control-{1,
148       2, 3, …} shortcut keys.
149
150       The  Diff  editor  can  be focused with Ctrl-j.  the Status tool can be
151       focused with Ctrl-k.  the Commit tool can be focused with Ctrl-l.
152

STATUS

154       The Status tool provides a visual analog to the git status command.
155
156       Status displays files that are modified relative to the  staging  area,
157       staged  for  the next commit, unmerged files from an in-progress merge,
158       and files that are untracked to git.
159
160       These are the same categories one sees when running git status  on  the
161       command line.
162
163       You  can  navigate  through  the list of files using keyboard arrows as
164       well as the ergonomical and vim-like j and k shortcut keys.
165
166       There are several convenient ways to interact with files in the  Status
167       tool.
168
169       Selecting a file displays its diff in the DIFF viewer.  Double-clicking
170       a file stages its contents, as does the the Ctrl-s shortcut key.
171
172       Ctrl-e opens selected files in the conifgured editor, and Ctrl-d  opens
173       selected files using git difftool
174
175       Additional actions can be performed using the right-click context menu.
176
177   Actions
178       Clicking the Staged folder shows a diffstat for the index.
179
180       Clicking the Modified folder shows a diffstat for the worktree.
181
182       Clicking individual files sends diffs to the Diff Display.
183
184       Double-clicking  individual  files  adds and removes their content from
185       the index.
186
187       Various actions are available through  the  right-click  context  menu.
188       Different actions are available depending a file’s status.
189
190   Stage Selected
191       Add to the staging area using git add Marks unmerged files as resolved.
192
193   Launch Editor
194       Launches the configured visual text editor
195
196   Launch Difftool
197       Visualize changes using git difftool.
198
199   Revert Unstaged Edits
200       Reverts  unstaged  content  by  checking  out  selected  paths from the
201       index/staging area
202
203   Revert Uncommitted Edits
204       Throws away uncommitted edits
205
206   Unstage Selected
207       Remove from the index/staging area with git reset
208
209   Launch Merge Tool
210       Resolve conflicts using git mergetool.
211
212   Delete File(s)
213       Delete untracked files from the filesystem.
214
215   Add to .gitignore
216       Adds untracked files to to the .gitignore file.
217

DIFF

219       The diff viewer/editor displays diffs for  selected  files.   Additions
220       are shown in green and removals are displayed in light red.  Extraneous
221       whitespace is shown with a pure-red background.
222
223       Right-clicking in the diff provides access to additional  actions  that
224       use either the cursor location or text selection.
225
226   Staging content for commit
227       The  @@  patterns  denote a new diff hunk.  Selecting lines of diff and
228       using the Stage Selected Lines command will  stage  just  the  selected
229       lines.   Clicking  within  a  diff  hunk  and selecting Stage Diff Hunk
230       stages the entire patch diff hunk.
231
232       The corresponding opposite commands can be performed on staged files as
233       well,  e.g.  staged  content  can be selectively removed from the index
234       when we are viewing diffs for staged content.
235

COMMIT MESSAGE EDITOR

237       The commit message editor is a simple text widget for  entering  commit
238       messages.
239
240       You  can  navigate between the Subject and Extended description… fields
241       using the keyboard arrow keys.
242
243       Pressing enter when inside the Subject field jumps down to the extended
244       description field.
245
246       The  Options  button  menu  to  the  left of the subject field provides
247       access to the additional actions.
248
249       The Ctrl+i keyboard shortcut adds a standard  “Signed-off-by:  ”  line,
250       and Ctrl+Enter creates a new commit using the commit message and staged
251       content.
252
253   Sign Off
254       The Sign Off button adds a standard:
255
256          Signed-off-by: A. U. Thor <a.u.thor@example.com>
257
258       line to the bottom of the commit message.
259
260       Invoking this action is equivalent to passing the -s option to git com‐
261       mit.
262
263   Commit
264       The  commit button runs git commit.  The contents of the commit message
265       editor is provided as the commit message.
266
267       Only staged files are included in the commit – this is the same  behav‐
268       ior as running git commit on the command-line.
269
270   Line and Column Display
271       The  current line and column number is displayed by the editor.  E.g. a
272       5,0 display means that the cursor is located at line five, column zero.
273
274       The display changes colors when lines get too long.   Yellow  indicates
275       the  safe  boundary for sending patches to a mailing list while keeping
276       space for inline reply markers.
277
278       Orange indicates that the line is starting to run a bit long and should
279       break soon.
280
281       Red  indicates that the line is running up against the standard 80-col‐
282       umn limit for commit messages.
283
284       Keeping commit messages less than  76-characters  wide  is  encouraged.
285       git  log  is  a  great  tool  but long lines mess up its formatting for
286       everyone else, so please be mindful when writing commit messages.
287
288   Amend Last Commit
289       Clicking on Amend Last Commit makes git cola amend the previous  commit
290       instead of creating a new one.  git cola loads the previous commit mes‐
291       sage into the commit message editor when this option is selected.
292
293       The Status tool will display all of the changes for the amended commit.
294
295   Create Signed Commit
296       Tell git commit and git merge to sign commits using GPG.
297
298       Using this option is equivalent to passing the --gpg-sign option to git
299       commit and git merge.
300
301       This  option’s  default value can be configured using the cola.signcom‐
302       mits configuration variable.
303
304   Prepare Commit Message
305       The Commit -> Prepare Commit Message action or  Ctrl-Shift-Return  key‐
306       board shortcut runs the cola-prepare-commit-msg hook if it is available
307       in .git/hooks/.  This is a git cola-specific hook that takes  the  same
308       parameters as Git’s prepare-commit-msg hook
309
310       The  hook is passed the path to .git/GIT_COLA_MSG as the first argument
311       and the hook is expected to write an updated commit message  to  speci‐
312       fied  path.   After  running  this action, the commit message editor is
313       updated with the new commit message.
314
315       To override the default path to  this  hook  set  the  cola.prepareCom‐
316       mitMessageHook  git  config  variable  to  the path to the hook script.
317       This is useful if you would like to use a common hook across all repos‐
318       itories.
319

BRANCHES

321       The  Branches  tool  provides  a  visual  tree  to navigate through the
322       branches.  The tree has three main nodes Local  Branch,  Remote  Branch
323       and  Tags.  Branches are grouped by their name divided by the character
324       ‘/’.Ex:
325
326          branch/feature/foo
327          branch/feature/bar
328          branch/doe
329
330       Will produce:
331
332          branch
333              - doe
334              + feature
335                  - bar
336                  - foo
337
338       Current branch will display a star icon. If current branch has  commits
339       ahead/behind it will display an up/down arrow with its number.
340
341   Actions
342       Various  actions  are  available  through the right-click context menu.
343       Different actions are available depending of selected branch status.
344
345   Checkout
346       The checkout action runs git checkout [<branchname>].
347
348   Merge in current branch
349       The merge action runs git merge –no-commit [<branchname>].
350
351   Pull
352       The pull action runs git pull –no-ff [<remote>] [<branchname>].
353
354   Push
355       The push action runs git push [<remote>] [<branchname>].
356
357   Rename Branch
358       The rename branch action runs git branch -M [<branchname>].
359
360   Delete Branch
361       The delete branch branch action runs git branch -D [<branchname>].
362
363   Delete Remote Branch
364       The remote branch action runs git  push  –delete  [<remote>]  [<branch‐
365       name>].
366

APPLY PATCHES

368       Use the File -> Apply Patches menu item to begin applying patches.
369
370       Dragging  and  dropping  patches  onto  the git cola interface adds the
371       patches to the list of patches to apply using git am.
372
373       You can drag either a set of patches or a directory containing patches.
374       Patches  can  be  sorted  using in the interface and are applied in the
375       same order as is listed in the list.
376
377       When a directory is dropped git cola walks the directory tree in search
378       of  patches.   git  cola  sorts the list of patches after they have all
379       been found.  This allows you to control the order in which  patchs  are
380       applied by placing patchsets into alphanumerically-sorted directories.
381

CUSTOM WINDOW SETTINGS

383       git cola remembers modifications to the layout and arrangement of tools
384       within the git cola interface.   Changes  are  saved  and  restored  at
385       application shutdown/startup.
386
387       git  cola can be configured to not save custom layouts by unsetting the
388       Save Window Settings option in the git cola preferences.
389

DARK MODE AND WINDOW MANAGER THEMES

391       Git Cola contains a default theme which follows the  current  Qt  style
392       and  a  handful  of  built-in  color  themes.   See cola.theme for more
393       details.
394
395       To use icons appropriate for a dark application  theme,  configure  git
396       config  --global  cola.icontheme  dark to use the dark icon theme.  See
397       cola.icontheme for more details.
398
399       On Linux, you may want Qt to follow the Window manager theme by config‐
400       uring  it  to  do  so  using the qt5ct Qt5 configuration tool.  Install
401       qt5ct on Debian/Ubuntu systems to make this work.:
402
403          sudo apt install qt5ct
404
405       Once installed, update your ~/.bash_profile to activate qt5ct:
406
407          # Use the style configured using the qt5ct tool
408          QT_QPA_PLATFORMTHEME=qt5ct
409          export QT_QPA_PLATFORMTHEME
410
411       This only work with the default theme.  The other  themes  replace  the
412       color palette with theme-specific colors.
413
414       On  macOS,  using  the  default  theme will automatically inherit “Dark
415       Mode” color themes when configured via System  Preferences.   You  will
416       need  to configure the dark icon theme as noted above when dark mode is
417       enabled.
418

CONFIGURATION VARIABLES

420       These variables can be set using git config or from the settings.
421
422   cola.autocompletepaths
423       Set to false to disable auto-completion of filenames in completion wid‐
424       gets.  This can speed up operations when working in large repositories.
425       Defaults to true.
426
427   cola.autoloadCommitTemplate
428       Set to true to automatically load the commit  template  in  the  commit
429       message editor If the commit.template variable has not been configured,
430       raise the corresponding error.  Defaults to false.
431
432   cola.blameviewer
433       The command used to blame files.  Defaults to git gui blame.
434
435   cola.browserdockable
436       Whether to create a dock widget with the  Browser  tool.   Defaults  to
437       false to speedup startup time.
438
439   cola.checkconflicts
440       Inspect  unmerged files for conflict markers before staging them.  This
441       feature helps prevent accidental staging of unresolved merge conflicts.
442       Defaults to true.
443
444   cola.defaultrepo
445       git  cola, when run outside of a Git repository, prompts the user for a
446       repository.  Set cola.defaultrepo to the path of a  Git  repository  to
447       make  git  cola  attempt  to use that repository before falling back to
448       prompting the user for a repository.
449
450   cola.dictionary
451       Specifies an additional dictionary for git cola to  use  in  its  spell
452       checker.   This should be configured to the path of a newline-separated
453       list of words.
454
455   cola.expandtab
456       Expand tabs into spaces in the commit  message  editor.   When  set  to
457       true,  git cola will insert a configurable number of spaces when tab is
458       pressed.   The  number  of  spaces  is  determined  by   cola.tabwidth.
459       Defaults to false.
460
461   cola.fileattributes
462       Enables per-file gitattributes encoding support when set to true.  This
463       tells git cola to honor the configured  encoding  when  displaying  and
464       applying diffs.
465
466   cola.fontdiff
467       Specifies the font to use for git cola’s diff display.
468
469   cola.hidpi
470       Specifies  the  High  DPI displays scale factor. Set 0 to automatically
471       scaled.  Setting value between 0  and  1  is  undefined.   This  option
472       requires at least Qt 5.6 to work.  See Qt QT_SCALE_FACTOR documentation
473       for more information.
474
475   cola.icontheme
476       Specifies the icon themes to use throughout git cola. The theme  speci‐
477       fied  must  be the name of the subdirectory containing the icons, which
478       in turn must be placed in the inside the main “icons” directory in  git
479       cola’s installation prefix.
480
481       If  unset,  or  set either “light” or “default”, then the default style
482       will be used.  If set to “dark” then the built-in  “dark”  icon  theme,
483       which is suitable for a dark window manager theme, will be used.
484
485       If  set to an absolute directory path then icons in that directory will
486       be used.  This value can be set to multiple values  using,  git  config
487       --add cola.icontheme $theme.
488
489       This  setting  can be overridden by the GIT_COLA_ICON_THEME environment
490       variable, which can specify multiple  themes  using  a  colon-separated
491       value.
492
493       The icon theme can also be specified by passing --icon-theme=<theme> on
494       the command line, once for each icon theme,  in  the  order  that  they
495       should  be  searched.   This  can  be  used to override a subset of the
496       icons, and fallback to the built-in icons for the remainder.
497
498   cola.imagediff.<extension>
499       Enable image diffs for the specified file extension.  For example, con‐
500       figuring  git  config –global cola.imagediff.svg false will disable use
501       of the visual image diff for .svg  files  in  all  repos  until  is  is
502       explicitly toggled on.  Defaults to true.
503
504   cola.inotify
505       Set  to  false  to  disable file system change monitoring.  Defaults to
506       true, but also requires either Linux with inotify  support  or  Windows
507       with  pywin32  installed  for file system change monitoring to actually
508       function.
509
510   cola.refreshonfocus
511       Set to true  to  automatically  refresh  when  git  cola  gains  focus.
512       Defaults  to false because this can cause a pause whenever switching to
513       git cola from another application.
514
515   cola.linebreak
516       Whether to automatically break long lines  while  editing  commit  mes‐
517       sages.  Defaults to true.  This setting is configured using the Prefer‐
518       ences dialog, but it can be toggled for one-off usage using the  commit
519       message editor’s options sub-menu.
520
521   cola.maxrecent
522       git cola caps the number of recent repositories to avoid cluttering the
523       start and recent repositories menu.  The maximum number of repositories
524       to remember is controlled by cola.maxrecent and defaults to 8.
525
526   cola.dragencoding
527       git cola encodes paths dragged from its widgets into utf-16 when adding
528       them to the drag-and-drop mime data (specifically,  the  text/x-moz-url
529       entry).  utf-16 is used to make gnome-terminal see the right paths, but
530       other terminals may expect a different encoding.  If you  are  using  a
531       terminal that expects a modern encoding, e.g. terminator, then set this
532       value to utf-8.
533
534   cola.readsize
535       git cola avoids reading large binary untracked files.  The maximum size
536       to read is controlled by cola.readsize and defaults to 2048.
537
538   cola.safemode
539       The  “Stage” button in the git cola Actions panel stages all files when
540       it is activated and no files are selected.  This can be problematic  if
541       it  is  accidentally triggered after carefully preparing the index with
542       staged changes.  “Safe Mode” is enabled  by  setting  cola.safemode  to
543       true.  When enabled, git cola will do nothing when “Stage” is activated
544       without a selection.  Defaults to false.
545
546   cola.savewindowsettings
547       git cola will remember its window settings when set  to  true.   Window
548       settings and X11 sessions are saved in $HOME/.config/git-cola.
549
550   cola.showpath
551       git  cola  displays  the  absolute path of the repository in the window
552       title.  This  can  be  disabled  by  setting  cola.showpath  to  false.
553       Defaults to true.
554
555   cola.signcommits
556       git cola will sign commits by default when set true. Defaults to false.
557       See the section below on setting up GPG for more details.
558
559   cola.statusindent
560       Set to true to indent files in the Status widget.  Files in the Staged,
561       Modified,  etc.  categories  will  be grouped in a tree-like structure.
562       Defaults to false.
563
564   cola.statusshowtotals
565       Set to true to display files counts in  the  Status  widget’s  category
566       titles.  Defaults to false.
567
568   cola.tabwidth
569       The number of columns occupied by a tab character.  Defaults to 8.
570
571   cola.terminal
572       The command to use when launching commands within a graphical terminal.
573
574       cola.terminal  defaults  to  xterm  -e when unset.  e.g. when opening a
575       shell, git cola will run xterm -e $SHELL.
576
577       git cola has built-in support for xterm, gnome-terminal,  konsole.   If
578       either  gnome-terminal,  xfce4-terminal,  or konsole are installed then
579       they will be preferred over xterm when cola.terminal is unset.
580
581       The table below shows the built-in values that are used for the respec‐
582       tive terminal.  You can force the use of a specific terminal by config‐
583       uring cola accordingly.
584
585   cola.terminalshellquote
586       Some terminal require that the command string get passed as  a  string.
587       For  example,  xfce4-terminal  -e "git difftool" requires shellquoting,
588       whereas gnome-terminal -- git difftool does not.
589
590       You should not need to set this variable  for  the  built-in  terminals
591       cola knows about – it will behave correctly without configuration.  For
592       example, when unconfigured,  cola  already  knows  that  xfce4-terminal
593       requires shellquoting.
594
595       This  configuration  variable  is  for  custom terminals outside of the
596       builtin set.  The table below shows the builtin configuration.
597          Terminal            cola.terminal            cola.terminalshellquote
598          ——–                 ————-                ———————–     gnome-terminal
599          gnome-terminal  –         false   konsole               konsole   -e
600          false   xfce4-terminal        xfce4-terminal   -e        true  xterm
601          xterm -e                false
602
603   cola.textwidth
604       The number of columns used for line wrapping.  Tabs are counted accord‐
605       ing to cola.tabwidth.
606
607   cola.theme
608       Specifies the GUI theme to use throughout git cola. The theme specified
609       must be one of the following values:
610
611       · default – default Qt theme, may appear different on various systems
612
613       · flat-dark-blue
614
615       · flat-dark-green
616
617       · flat-dark-grey
618
619       · flat-dark-red
620
621       · flat-light-blue
622
623       · flat-light-green
624
625       · flat-light-grey
626
627       · flat-light-red
628
629       If unset, or set to an invalid value, then the default  style  will  be
630       used.  The  default theme is generated by Qt internal engine and should
631       look native but may look noticeably different on  different  platforms.
632       The  flat themes on the other hand should look similar (but not identi‐
633       cal) on various systems.
634
635       The GUI theme can also be specified by passing  --theme=<name>  on  the
636       command line.
637
638   cola.turbo
639       Set  to  true  to enable “turbo” mode.  “Turbo” mode disables some fea‐
640       tures that can slow things down when operating  on  huge  repositories.
641       “Turbo”  mode  will  skip  loading Git commit messages, author details,
642       status information, and commit date details in the File  Browser  tool.
643       Defaults to false.
644
645   cola.color.text
646       The default diff text color, in hexadecimal #RRGGBB notation.  Defaults
647       to “#030303”:
648
649          git config cola.color.text '#030303'
650
651   cola.color.add
652       The default diff “add” background color, in hexadecimal  #RRGGBB  nota‐
653       tion.  Defaults to “#d2ffe4”:
654
655          git config cola.color.add '#d2ffe4'
656
657   cola.color.remove
658       The  default  diff  “remove”  background  color, in hexadecimal #RRGGBB
659       notation.  Defaults to “#fee0e4”:
660
661          git config cola.color.remove '#fee0e4'
662
663   cola.color.header
664       The default diff header text color, in  hexadecimal  #RRGGBB  notation.
665       Defaults to “#bbbbbb”:
666
667          git config cola.color.header '#bbbbbb'
668
669   gui.diffcontext
670       The number of diff context lines to display.
671
672   gui.displayuntracked
673       git cola avoids showing untracked files when set to false.
674
675   gui.editor
676       The  default  text  editor to use is defined in gui.editor.  The config
677       variable overrides the VISUAL environment variable.  e.g. gvim -f -p.
678
679   gui.historybrowser
680       The history browser to use when visualizing history.  Defaults to gitk.
681
682   diff.tool
683       The default diff tool to use.
684
685   merge.tool
686       The default merge tool to use.
687
688   user.email
689       Your email address to be recorded in any newly created commits.  Can be
690       overridden   by   the  ‘GIT_AUTHOR_EMAIL’,  ‘GIT_COMMITTER_EMAIL’,  and
691       ‘EMAIL’ environment variables.
692
693   user.name
694       Your full name to be recorded in any newly  created  commits.   Can  be
695       overridden  by  the ‘GIT_AUTHOR_NAME’ and ‘GIT_COMMITTER_NAME’ environ‐
696       ment variables.
697

ENVIRONMENT VARIABLES

699   GIT_COLA_ICON_THEME
700       When set in the environment, GIT_COLA_ICON_THEME  overrides  the  theme
701       specified in the cola.icontheme configuration.  Read cola.icontheme for
702       more details.
703
704   GIT_COLA_SCALE
705       IMPORTANT:
706          GIT_COLA_SCALE should not be used with newer versions of Qt.
707
708          Set QT_AUTO_SCREEN_SCALE_FACTOR to 1 and Qt will automatically scale
709          the  interface  to  the correct size based on the display DPI.  This
710          option is also available by setting cola.hidpi configuration.
711
712          See the Qt High DPI documentation for more details.
713
714       git cola can be made to scale its interface for HiDPI  displays.   When
715       defined,  git cola will scale icons, radioboxes, and checkboxes accord‐
716       ing to the scale factor.  The default value is 1.  A good  value  is  2
717       for high-resolution displays.
718
719       Fonts are not scaled, as their size can already be set in the settings.
720
721   GIT_COLA_TRACE
722       When  defined, git cola logs git commands to stdout.  When set to full,
723       git cola also logs the exit status and output.  When set to trace,  git
724       cola logs to the Console widget.
725
726   VISUAL
727       Specifies the default editor to use.  This is ignored when the gui.edi‐
728       tor configuration variable is defined.
729

LANGUAGE SETTINGS

731       git cola automatically detects your language and presents some transla‐
732       tions  when  available.   This  may not be desired, or you may want git
733       cola to use a specific language.
734
735       You can make git cola use an alternative language by creating a ~/.con‐
736       fig/git-cola/language  file  containing the standard two-letter gettext
737       language code, e.g. “en”, “de”, “ja”, “zh”, etc.:
738
739          mkdir -p ~/.config/git-cola &&
740          echo en >~/.config/git-cola/language
741
742       Alternatively you may also use LANGUAGE environmental variable to  tem‐
743       porarily  change  git cola’s language just like any other gettext-based
744       program.  For example to temporarily change git cola’s language to Eng‐
745       lish:
746
747          LANGUAGE=en git cola
748
749       To  make git cola use the zh_TW translation with zh_HK, zh, and en as a
750       fallback.:
751
752          LANGUAGE=zh_TW:zh_HK:zh:en git cola
753

CUSTOM GUI ACTIONS

755       git cola allows you to define custom GUI actions by setting git  config
756       variables.  The “name” of the command appears in the “Actions” menu.
757
758   guitool.<name>.cmd
759       Specifies the shell command line to execute when the corresponding item
760       of the Tools menu is invoked. This option is mandatory for every  tool.
761       The  command is executed from the root of the working directory, and in
762       the environment it receives the name of the tool  as  GIT_GUITOOL,  the
763       name  of  the  currently selected file as FILENAME, and the name of the
764       current branch as CUR_BRANCH (if the head is  detached,  CUR_BRANCH  is
765       empty).
766
767   guitool.<name>.background
768       Run  the  command  in  the  background (similar to editing and difftool
769       actions).  This avoids blocking the GUI.  Setting  background  to  true
770       implies noconsole and norescan.
771
772   guitool.<name>.needsfile
773       Run  the tool only if a diff is selected in the GUI. It guarantees that
774       FILENAME is not empty.
775
776   guitool.<name>.noconsole
777       Run the command silently, without creating a window to display its out‐
778       put.
779
780   guitool.<name>.norescan
781       Don’t  rescan the working directory for changes after the tool finishes
782       execution.
783
784   guitool.<name>.confirm
785       Show a confirmation dialog before actually running the tool.
786
787   guitool.<name>.argprompt
788       Request a string argument from the  user,  and  pass  it  to  the  tool
789       through  the  ARGS  environment  variable. Since requesting an argument
790       implies confirmation, the confirm option  has  no  effect  if  this  is
791       enabled.  If  the  option  is set to true, yes, or 1, the dialog uses a
792       built-in generic prompt; otherwise the exact value of the  variable  is
793       used.
794
795   guitool.<name>.revprompt
796       Request  a  single  valid  revision from the user, and set the REVISION
797       environment variable. In other aspects this option is similar  to  arg‐
798       prompt, and can be used together with it.
799
800   guitool.<name>.revunmerged
801       Show  only unmerged branches in the revprompt subdialog. This is useful
802       for tools similar to merge or rebase, but not for things like  checkout
803       or reset.
804
805   guitool.<name>.title
806       Specifies the title to use for the prompt dialog.  Defaults to the tool
807       name.
808
809   guitool.<name>.prompt
810       Specifies the general prompt string to display at the top of  the  dia‐
811       log, before subsections for argprompt and revprompt.  The default value
812       includes the actual command.
813
814   guitool.<name>.shortcut
815       Specifies a keyboard shortcut for the custom tool.
816
817       The value must be a valid string understood by  the  QAction::setShort‐
818       cut()                             API.                              See
819       http://qt-project.org/doc/qt-4.8/qkeysequence.html#QKeySequence-2   for
820       more details about the supported values.
821
822       Avoid  creating shortcuts that conflict with existing built-in git cola
823       shortcuts.  Creating a conflict will  result  in  no  action  when  the
824       shortcut is used.
825

SETTING UP GPG FOR SIGNED COMMITS

827       When  creating  signed  commits, gpg will attempt to read your password
828       from the terminal from which git cola was launched.  The  way  to  make
829       this  work smoothly is to use a GPG agent so that you can avoid needing
830       to re-enter your password every time you commit.
831
832       This also gets you a graphical passphrase  prompt  instead  of  getting
833       prompted for your password in the terminal.
834
835   Install gpg-agent and friends
836       On Mac OS X, you may need to brew install gpg-agent and install the Mac
837       GPG Suite.
838
839       On Linux use your package manager to install  gnupg2,  gnupg-agent  and
840       pinentry-qt, e.g.:
841
842          sudo apt-get install gnupg2 gnupg-agent pinentry-qt
843
844       On  Linux, you should also configure Git so that it uses gpg2 (gnupg2),
845       otherwise you will get errors mentioning, “unable  to  open  /dev/tty”.
846       Set Git’s gpg.program to gpg2:
847
848          git config --global gpg.program gpg2
849
850   Configure gpg-agent and a pin-entry program
851       On Mac OS X, edit ~/.gnupg/gpg.conf to include the line,:
852
853          use-agent
854
855       This  is  typically not needed on Linux, where gpg2 is used, as this is
856       the default value when using gpg2.
857
858       Next, edit ~/.gnupg/gpg-agent.conf to contain a  pinentry-program  line
859       pointing to the pinentry program for your platform.
860
861       The  following  example ~/.gnupg/gpg-agent.conf shows how to use pinen‐
862       try-gtk-2 on Linux:
863
864          pinentry-program /usr/bin/pinentry-gtk-2
865          default-cache-ttl 3600
866
867       This following example .gnupg/gpg-agent.conf shows how to use MacGPG2’s
868       pinentry app on On Mac OS X:
869
870          pinentry-program /usr/local/MacGPG2/libexec/pinentry-mac.app/Contents/MacOS/pinentry-mac
871          default-cache-ttl 3600
872          enable-ssh-support
873          use-standard-socket
874
875       Once  this  has been set up then you will need to reload your gpg-agent
876       config:
877
878          echo RELOADAGENT | gpg-connect-agent
879
880       If you see the following output:
881
882          OK
883
884       Then the daemon is already running, and you do not  need  to  start  it
885       yourself.
886
887       If  it  is  not  running, eval the output of gpg-agent --daemon in your
888       shell prior to launching git cola.:
889
890          eval $(gpg-agent --daemon)
891          git cola
892

WINDOWS NOTES

894   Git Installation
895       If Git is installed in a custom location, e.g. not installed in  C:/Git
896       or Program Files, then the path to Git must be configured by creating a
897       file in your home directory ~/.config/git-cola/git-bindir  that  points
898       to your git installation.  e.g.:
899
900          C:/Tools/Git/bin
901
903   Git Cola’s Git Repository
904       https://github.com/git-cola/git-cola/
905
906   Git Cola Homepage
907       https://git-cola.github.io/
908
909   Mailing List
910       https://groups.google.com/group/git-cola
911

AUTHOR

913       David Aguilar and contributors
914
916       2007-2020, David Aguilar and contributors
917
918
919
920
9213.8                              Sep 17, 2020                      GIT-COLA(1)
Impressum