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 se‐
126       lection.  This is useful for selectively reverted edits from the  work‐
127       tree.  This same hotkey reverts the entire file when used from the sta‐
128       tus 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 fo‐
151       cused 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 in‐
201       dex/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 ac‐
247       cess 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 ev‐
286       eryone 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 up‐
313       dated 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  ap‐
385       plication 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 de‐
393       tails.
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.   De‐
459       faults 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 ap‐
464       plying 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  re‐
472       quires  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  ex‐
502       plicitly 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.   De‐
512       faults  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 ti‐
552       tle.  This can be disabled by setting cola.showpath to false.  Defaults
553       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.startupmode
560       Control how the list of repositories is displayed in the  startup  dia‐
561       log.  Set to list to view the list of repositories as a list, or folder
562       to view the list of repositories as a collection of folder icons.   De‐
563       faults to list.
564
565   cola.statusindent
566       Set to true to indent files in the Status widget.  Files in the Staged,
567       Modified, etc. categories will be grouped  in  a  tree-like  structure.
568       Defaults to false.
569
570   cola.statusshowtotals
571       Set to true to display files counts in the Status widget’s category ti‐
572       tles.  Defaults to false.
573
574   cola.tabwidth
575       The number of columns occupied by a tab character.  Defaults to 8.
576
577   cola.terminal
578       The command to use when launching commands within a graphical terminal.
579
580       cola.terminal defaults to xterm -e when unset.   e.g.  when  opening  a
581       shell, git cola will run xterm -e $SHELL.
582
583       git  cola  has built-in support for xterm, gnome-terminal, konsole.  If
584       either gnome-terminal, xfce4-terminal, or konsole  are  installed  then
585       they will be preferred over xterm when cola.terminal is unset.
586
587       The table below shows the built-in values that are used for the respec‐
588       tive terminal.  You can force the use of a specific terminal by config‐
589       uring cola accordingly.
590
591   cola.terminalshellquote
592       Some  terminal  require that the command string get passed as a string.
593       For example, xfce4-terminal -e "git  difftool"  requires  shellquoting,
594       whereas gnome-terminal -- git difftool does not.
595
596       You  should  not  need  to set this variable for the built-in terminals
597       cola knows about – it will behave correctly without configuration.  For
598       example,  when unconfigured, cola already knows that xfce4-terminal re‐
599       quires shellquoting.
600
601       This configuration variable is for  custom  terminals  outside  of  the
602       builtin set.  The table below shows the builtin configuration.
603          Terminal             cola.terminal           cola.terminalshellquote
604          ——–                ————-                ———————–      gnome-terminal
605          gnome-terminal   –         false   konsole               konsole  -e
606          false  xfce4-terminal       xfce4-terminal   -e         true   xterm
607          xterm -e                false
608
609   cola.textwidth
610       The number of columns used for line wrapping.  Tabs are counted accord‐
611       ing to cola.tabwidth.
612
613   cola.theme
614       Specifies the GUI theme to use throughout git cola. The theme specified
615       must be one of the following values:
616
617default – default Qt theme, may appear different on various systems
618
619flat-dark-blue
620
621flat-dark-green
622
623flat-dark-grey
624
625flat-dark-red
626
627flat-light-blue
628
629flat-light-green
630
631flat-light-grey
632
633flat-light-red
634
635       If  unset,  or  set to an invalid value, then the default style will be
636       used. The default theme is generated by Qt internal engine  and  should
637       look  native  but may look noticeably different on different platforms.
638       The flat themes on the other hand should look similar (but not  identi‐
639       cal) on various systems.
640
641       The  GUI  theme  can also be specified by passing --theme=<name> on the
642       command line.
643
644   cola.turbo
645       Set to true to enable “turbo” mode.  “Turbo” mode  disables  some  fea‐
646       tures  that  can  slow things down when operating on huge repositories.
647       “Turbo” mode will skip loading Git  commit  messages,  author  details,
648       status  information,  and commit date details in the File Browser tool.
649       Defaults to false.
650
651   cola.color.text
652       The default diff text color, in hexadecimal #RRGGBB notation.  Defaults
653       to “#030303”:
654
655          git config cola.color.text '#030303'
656
657   cola.color.add
658       The  default  diff “add” background color, in hexadecimal #RRGGBB nota‐
659       tion.  Defaults to “#d2ffe4”:
660
661          git config cola.color.add '#d2ffe4'
662
663   cola.color.remove
664       The default diff “remove” background color, in hexadecimal #RRGGBB  no‐
665       tation.  Defaults to “#fee0e4”:
666
667          git config cola.color.remove '#fee0e4'
668
669   cola.color.header
670       The  default  diff  header text color, in hexadecimal #RRGGBB notation.
671       Defaults to “#bbbbbb”:
672
673          git config cola.color.header '#bbbbbb'
674
675   gui.diffcontext
676       The number of diff context lines to display.
677
678   gui.displayuntracked
679       git cola avoids showing untracked files when set to false.
680
681   gui.editor
682       The default text editor to use is defined in  gui.editor.   The  config
683       variable overrides the VISUAL environment variable.  e.g. gvim -f -p.
684
685   gui.historybrowser
686       The history browser to use when visualizing history.  Defaults to gitk.
687
688   diff.tool
689       The default diff tool to use.
690
691   merge.tool
692       The default merge tool to use.
693
694   user.email
695       Your email address to be recorded in any newly created commits.  Can be
696       overridden  by  the  ‘GIT_AUTHOR_EMAIL’,   ‘GIT_COMMITTER_EMAIL’,   and
697       ‘EMAIL’ environment variables.
698
699   user.name
700       Your  full  name  to  be recorded in any newly created commits.  Can be
701       overridden by the ‘GIT_AUTHOR_NAME’ and  ‘GIT_COMMITTER_NAME’  environ‐
702       ment variables.
703

ENVIRONMENT VARIABLES

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

LANGUAGE SETTINGS

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

CUSTOM GUI ACTIONS

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

SETTING UP GPG FOR SIGNED COMMITS

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

WINDOWS NOTES

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

AUTHOR

919       David Aguilar and contributors
920
922       2007-2021, David Aguilar and contributors
923
924
925
926
9273.9                              Feb 19, 2021                      GIT-COLA(1)
Impressum