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 diff or grep screens and press any of Enter, Ctrl-e, or the
101       Edit 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 and binary file support.  This
463       tells git cola to honor the configured encoding when displaying and ap‐
464       plying diffs.
465
466       A  .gitattributes  file  can set the binary attribute in order to force
467       specific untracked paths to be treated as binary  files  when  diffing.
468       Binary files are displayed using a hexdump display.
469
470          # Treat *.exr files as binary files.
471          *.exr binary
472
473   cola.fontdiff
474       Specifies the font to use for git cola’s diff display.
475
476   cola.hidpi
477       Specifies  the  High  DPI displays scale factor. Set 0 to automatically
478       scaled.  Setting value between 0 and 1 is undefined.  This  option  re‐
479       quires  at  least Qt 5.6 to work.  See Qt QT_SCALE_FACTOR documentation
480       for more information.
481
482   cola.icontheme
483       Specifies the icon themes to use throughout git cola. The theme  speci‐
484       fied  must  be the name of the subdirectory containing the icons, which
485       in turn must be placed in the inside the main “icons” directory in  git
486       cola’s installation prefix.
487
488       If  unset,  or  set either “light” or “default”, then the default style
489       will be used.  If set to “dark” then the built-in  “dark”  icon  theme,
490       which is suitable for a dark window manager theme, will be used.
491
492       If  set to an absolute directory path then icons in that directory will
493       be used.  This value can be set to multiple values  using,  git  config
494       --add cola.icontheme $theme.
495
496       This  setting  can be overridden by the GIT_COLA_ICON_THEME environment
497       variable, which can specify multiple  themes  using  a  colon-separated
498       value.
499
500       The icon theme can also be specified by passing --icon-theme=<theme> on
501       the command line, once for each icon theme,  in  the  order  that  they
502       should  be  searched.   This  can  be  used to override a subset of the
503       icons, and fallback to the built-in icons for the remainder.
504
505   cola.imagediff.<extension>
506       Enable image diffs for the specified file extension.  For example, con‐
507       figuring  git  config –global cola.imagediff.svg false will disable use
508       of the visual image diff for .svg files in all repos until  is  is  ex‐
509       plicitly toggled on.  Defaults to true.
510
511   cola.inotify
512       Set  to  false  to  disable file system change monitoring.  Defaults to
513       true, but also requires either Linux with inotify  support  or  Windows
514       with  pywin32  installed  for file system change monitoring to actually
515       function.
516
517   cola.refreshonfocus
518       Set to true to automatically refresh when git cola  gains  focus.   De‐
519       faults  to  false  because this can cause a pause whenever switching to
520       git cola from another application.
521
522   cola.linebreak
523       Whether to automatically break long lines  while  editing  commit  mes‐
524       sages.  Defaults to true.  This setting is configured using the Prefer‐
525       ences dialog, but it can be toggled for one-off usage using the  commit
526       message editor’s options sub-menu.
527
528   cola.maxrecent
529       git cola caps the number of recent repositories to avoid cluttering the
530       start and recent repositories menu.  The maximum number of repositories
531       to remember is controlled by cola.maxrecent and defaults to 8.
532
533   cola.dragencoding
534       git cola encodes paths dragged from its widgets into utf-16 when adding
535       them to the drag-and-drop mime data (specifically,  the  text/x-moz-url
536       entry).  utf-16 is used to make gnome-terminal see the right paths, but
537       other terminals may expect a different encoding.  If you  are  using  a
538       terminal that expects a modern encoding, e.g. terminator, then set this
539       value to utf-8.
540
541   cola.readsize
542       git cola avoids reading large binary untracked files.  The maximum size
543       to read is controlled by cola.readsize and defaults to 2048.
544
545   cola.resizebrowsercolumns
546       git  cola will automatically resize the file browser columns as folders
547       are expanded/collapsed when cola.resizebrowsercolumns is set to true.
548
549   cola.safemode
550       The “Stage” button in the git cola Actions panel stages all files  when
551       it  is activated and no files are selected.  This can be problematic if
552       it is accidentally triggered after carefully preparing the  index  with
553       staged  changes.   “Safe  Mode”  is enabled by setting cola.safemode to
554       true.  When enabled, git cola will do nothing when “Stage” is activated
555       without a selection.  Defaults to false.
556
557   cola.savewindowsettings
558       git  cola  will  remember its window settings when set to true.  Window
559       settings and X11 sessions are saved in $HOME/.config/git-cola.
560
561   cola.showpath
562       git cola displays the absolute path of the repository in the window ti‐
563       tle.  This can be disabled by setting cola.showpath to false.  Defaults
564       to true.
565
566   cola.signcommits
567       git cola will sign commits by default when set true. Defaults to false.
568       See the section below on setting up GPG for more details.
569
570   cola.startupmode
571       Control  how  the list of repositories is displayed in the startup dia‐
572       log.  Set to list to view the list of repositories as a list, or folder
573       to  view the list of repositories as a collection of folder icons.  De‐
574       faults to list.
575
576   cola.statusindent
577       Set to true to indent files in the Status widget.  Files in the Staged,
578       Modified,  etc.  categories  will  be grouped in a tree-like structure.
579       Defaults to false.
580
581   cola.statusshowtotals
582       Set to true to display files counts in the Status widget’s category ti‐
583       tles.  Defaults to false.
584
585   cola.tabwidth
586       The number of columns occupied by a tab character.  Defaults to 8.
587
588   cola.terminal
589       The command to use when launching commands within a graphical terminal.
590
591       cola.terminal  defaults  to  xterm  -e when unset.  e.g. when opening a
592       shell, git cola will run xterm -e $SHELL.
593
594       git cola has built-in support for xterm, gnome-terminal,  konsole.   If
595       either  gnome-terminal,  xfce4-terminal,  or konsole are installed then
596       they will be preferred over xterm when cola.terminal is unset.
597
598       The table below shows the built-in values that are used for the respec‐
599       tive terminal.  You can force the use of a specific terminal by config‐
600       uring cola accordingly.
601
602   cola.terminalshellquote
603       Some terminal require that the command string get passed as  a  string.
604       For  example,  xfce4-terminal  -e "git difftool" requires shellquoting,
605       whereas gnome-terminal -- git difftool does not.
606
607       You should not need to set this variable  for  the  built-in  terminals
608       cola knows about – it will behave correctly without configuration.  For
609       example, when unconfigured, cola already knows that xfce4-terminal  re‐
610       quires shellquoting.
611
612       This  configuration  variable  is  for  custom terminals outside of the
613       builtin set.  The table below shows the builtin configuration.
614          Terminal            cola.terminal            cola.terminalshellquote
615          ——–                 ————-                ———————–     gnome-terminal
616          gnome-terminal  –         false   konsole               konsole   -e
617          false   xfce4-terminal        xfce4-terminal   -e        true  xterm
618          xterm -e                false
619
620   cola.textwidth
621       The number of columns used for line wrapping.  Tabs are counted accord‐
622       ing to cola.tabwidth.
623
624   cola.theme
625       Specifies the GUI theme to use throughout git cola. The theme specified
626       must be one of the following values:
627
628default – default Qt theme, may appear different on various systems
629
630flat-dark-blue
631
632flat-dark-green
633
634flat-dark-grey
635
636flat-dark-red
637
638flat-light-blue
639
640flat-light-green
641
642flat-light-grey
643
644flat-light-red
645
646       If unset, or set to an invalid value, then the default  style  will  be
647       used.  The  default theme is generated by Qt internal engine and should
648       look native but may look noticeably different on  different  platforms.
649       The  flat themes on the other hand should look similar (but not identi‐
650       cal) on various systems.
651
652       The GUI theme can also be specified by passing  --theme=<name>  on  the
653       command line.
654
655   cola.turbo
656       Set  to  true  to enable “turbo” mode.  “Turbo” mode disables some fea‐
657       tures that can slow things down when operating  on  huge  repositories.
658       “Turbo”  mode  will  skip  loading Git commit messages, author details,
659       status information, and commit date details in the File  Browser  tool.
660       Defaults to false.
661
662   cola.color.text
663       The default diff text color, in hexadecimal #RRGGBB notation.  Defaults
664       to “#030303”:
665
666          git config cola.color.text '#030303'
667
668   cola.color.add
669       The default diff “add” background color, in hexadecimal  #RRGGBB  nota‐
670       tion.  Defaults to “#d2ffe4”:
671
672          git config cola.color.add '#d2ffe4'
673
674   cola.color.remove
675       The  default diff “remove” background color, in hexadecimal #RRGGBB no‐
676       tation.  Defaults to “#fee0e4”:
677
678          git config cola.color.remove '#fee0e4'
679
680   cola.color.header
681       The default diff header text color, in  hexadecimal  #RRGGBB  notation.
682       Defaults to “#bbbbbb”:
683
684          git config cola.color.header '#bbbbbb'
685
686   core.hooksPath
687       Hooks  are  programs  you can place in a hooks directory to trigger ac‐
688       tions at certain points in git’s execution. Hooks that don’t  have  the
689       executable bit set are ignored.
690
691       By  default  the  hooks  directory  is  $GIT_DIR/hooks, but that can be
692       changed via the core.hooksPath configuration variable
693
694       The cola-prepare-commit-msg hook functionality and Cola’s Git  LFS  de‐
695       tection honors this configuration.
696
697       Please see the git hooks documentation for more details.
698
699   gui.diffcontext
700       The number of diff context lines to display.
701
702   gui.displayuntracked
703       git cola avoids showing untracked files when set to false.
704
705   gui.editor
706       The  default  text  editor to use is defined in gui.editor.  The config
707       variable overrides the VISUAL environment variable.  e.g. gvim -f -p.
708
709   gui.historybrowser
710       The history browser to use when visualizing history.  Defaults to gitk.
711
712   diff.tool
713       The default diff tool to use.
714
715   merge.tool
716       The default merge tool to use.
717
718   user.email
719       Your email address to be recorded in any newly created commits.  Can be
720       overridden   by   the  ‘GIT_AUTHOR_EMAIL’,  ‘GIT_COMMITTER_EMAIL’,  and
721       ‘EMAIL’ environment variables.
722
723   user.name
724       Your full name to be recorded in any newly  created  commits.   Can  be
725       overridden  by  the ‘GIT_AUTHOR_NAME’ and ‘GIT_COMMITTER_NAME’ environ‐
726       ment variables.
727

ENVIRONMENT VARIABLES

729   GIT_COLA_ICON_THEME
730       When set in the environment, GIT_COLA_ICON_THEME  overrides  the  theme
731       specified in the cola.icontheme configuration.  Read cola.icontheme for
732       more details.
733
734   GIT_COLA_SCALE
735       IMPORTANT:
736          GIT_COLA_SCALE should not be used with newer versions of Qt.
737
738          Set QT_AUTO_SCREEN_SCALE_FACTOR to 1 and Qt will automatically scale
739          the  interface  to  the correct size based on the display DPI.  This
740          option is also available by setting cola.hidpi configuration.
741
742          See the Qt High DPI documentation for more details.
743
744       git cola can be made to scale its interface for HiDPI  displays.   When
745       defined,  git cola will scale icons, radioboxes, and checkboxes accord‐
746       ing to the scale factor.  The default value is 1.  A good  value  is  2
747       for high-resolution displays.
748
749       Fonts are not scaled, as their size can already be set in the settings.
750
751   GIT_COLA_TRACE
752       When  defined, git cola logs git commands to stdout.  When set to full,
753       git cola also logs the exit status and output.  When set to trace,  git
754       cola logs to the Console widget.
755
756   VISUAL
757       Specifies the default editor to use.  This is ignored when the gui.edi‐
758       tor configuration variable is defined.
759

LANGUAGE SETTINGS

761       git cola automatically detects your language and presents some transla‐
762       tions  when  available.   This  may not be desired, or you may want git
763       cola to use a specific language.
764
765       You can make git cola use an alternative language by creating a ~/.con‐
766       fig/git-cola/language  file  containing the standard two-letter gettext
767       language code, e.g. “en”, “de”, “ja”, “zh”, etc.:
768
769          mkdir -p ~/.config/git-cola &&
770          echo en >~/.config/git-cola/language
771
772       Alternatively you may also use LANGUAGE environmental variable to  tem‐
773       porarily  change  git cola’s language just like any other gettext-based
774       program.  For example to temporarily change git cola’s language to Eng‐
775       lish:
776
777          LANGUAGE=en git cola
778
779       To  make git cola use the zh_TW translation with zh_HK, zh, and en as a
780       fallback.:
781
782          LANGUAGE=zh_TW:zh_HK:zh:en git cola
783

CUSTOM GUI ACTIONS

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

SETTING UP GPG FOR SIGNED COMMITS

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

WINDOWS NOTES

924   Git Installation
925       If Git is installed in a custom location, e.g. not installed in  C:/Git
926       or Program Files, then the path to Git must be configured by creating a
927       file in your home directory ~/.config/git-cola/git-bindir  that  points
928       to your git installation.  e.g.:
929
930          C:/Tools/Git/bin
931
932   SSH Agents for Key-based Authentication
933       You may need to setup ssh-agent in order to use SSH key-based authenti‐
934       cation on Windows. It has been reported that starting OpenSSH agent  in
935       Windows  Services  and adding the key using Powershell are necessary in
936       order to get things working.
937
938       Please see the following links for more details.
939
940       https://stackoverflow.com/questions/18683092/how-to-run-ssh-add-on-windows
941

FIPS SECURITY MODE

943       FIPS  Security Mode is available in newer versions of Python. These in‐
944       clude Python 3.9+ and the patched Python 3.6 used by CentOS8/RHEL8 (and
945       possibly others).
946
947       Git Cola uses the hashlib.md5 function and adheres to the FIPS security
948       mode when available. Git Cola does not use the MD5 value  for  security
949       purposes.   MD%  is  used  only  for  the  purposes of implementing the
950       cola/gravatar.py Gravatar client.
951
953   Git Cola’s Git Repository
954       https://github.com/git-cola/git-cola/
955
956   Git Cola Homepage
957       https://git-cola.github.io/
958
959   Mailing List
960       https://groups.google.com/group/git-cola
961

AUTHOR

963       David Aguilar and contributors
964
966       2007-2021, David Aguilar and contributors
967
968
969
970
9713.11.0                           Oct 27, 2021                      GIT-COLA(1)
Impressum