git

git(1)                      General Commands Manual                     git(1)



NAME
       git - GNU Interactive Tools version 4.3.6

SYNTAX
       git
       gitps [ps(1) like parameters]
       gitview filename


NOTE
       The main configuration file of the GIT package is .gitrc.TERM where
       TERM is the value of the environment variable 'TERM' e.g for Linux
       console your environment contains something like 'TERM=console' so the
       configuration file name is .gitrc.console.  You can (and should) have a
       configuration file for each terminal type you use.


DESCRIPTION
       git is a file system browser with some shell facilities which was
       designed to make your work much easier and much efficient.

       gitps is an interactive process viewer/killer. It calls internally the
       ps(1) utility so that's the reason why gitps parameters are in fact
       ps(1) ones. Running gitps it is self explanatory. Use the arrows,
       PageUp, PageDown, Home, End, ^N, ^P, ^V, ESC v to move in the list, ^L
       to refresh it and F10 or ^G to leave. You can change these keys, just
       read the sections [GITPS-Setup], [GITPS-Color], [GITPS-Monochrome] and
       [GITPS-Keys] in the configuration file .gitrc.TERM.  See also
       CONFIGURATION FILES.

       gitview is an hex/ascii file viewer. Too simple to need a separate
       manual page. Use the arrows, PageUp, PageDown, Home, End, ^N, ^P, ^V,
       ESC v to move in the file, ^L to refresh the screen and F10 or ^G to
       leave. You can change those keys, just read the sections [GITVIEW-
       Setup], [GITVIEW-Color], [GITVIEW-Monochrome] and [GITVIEW-Keys] in the
       configuration file .gitrc.TERM.  See also CONFIGURATION FILES.


FILE-SYSTEM BROWSER
       git is made of two panels. The left one and the right one. Each one
       contains a file system directory. You can browse the directory tree
       with the usual cursor keys and pressing ENTER when you want to enter or
       leave a directory.  You may change the panels by pressing TAB.  See
       also BUILT-IN COMMANDS.


INPUT LINE
       Under the two panels there is a shell like input line which you can use
       to type normal shell commands. The input line supports unlimited
       characters and keeps a history of the typed commands. GIT uses the GNU
       history library for that.  See also BUILT-IN COMMANDS.


WARNINGS AND ERRORS REPORTING
       Under the input line there is a status bar. You can see there the
       status of the currently executed command, the warnings and errors and
       you will be prompted if a decision has to be taken.


ENVIRONMENT VARIABLES
       The configuration files use shell environment variables to call the
       shell, editor, mail reader, compress and virtual memory status utility.
       That means that if you set GIT_SHELL, GIT_EDITOR, GIT_RMAIL or
       GIT_VMSTAT to some value, that value will be used instead of the
       default one.  The defaults are:

       GIT_SHELL='/bin/sh'
       GIT_EDITOR='vi'
       GIT_RMAIL='emacs -f rmail'
       GIT_VMSTAT='free'

       If GIT_SHELL is not defined but SHELL is, GIT_SHELL will be set to that
       value. If GIT_EDITOR is not defined but EDITOR is, GIT_EDITOR will be
       set to that value. If you want to change the default settings, put
       something like this into your .profile :

       export GIT_SHELL='/usr/bin/bash'
       export GIT_EDITOR='emacs'
       export GIT_RMAIL='elm'
       export GIT_VMSTAT='vmstat'


CONFIGURATION FILES
       There is one configuration file per terminal type in git/gitps/gitview.
       The configuration file(s) resides in the user's home directory or (the
       default versions) in the directory $(prefix)/lib (usually
       /usr/lib/git).  The generic name is .gitrc.TERM.  GIT allows each
       terminal type to have its own configuration file (TERM is the value of
       the 'TERM' environment variable (e.g vt102). For the Linux console the
       configuration file is .gitrc.console).

       If you have compiled the GIT package with HAVE_LIBTERMCAP and your
       system has a huge termcap database (/etc/termcap), you can copy the
       termcap definition(s) of your terminal(s) in a file ($HOME/.termcap
       e.g.).  After that, set your TERMCAP environment variable to point to
       it. You should add something like this to your .profile:

       TERMCAP=/home/mike/.termcap

       git/gitps/gitview can run without such a file, but on systems with huge
       termcap databases, copying the definitions of the most used terminals
       in a local .termcap will result in git/gitps/gitview starting faster.
       git/gitps/gitview doesn't use termcap key definitions. You must define
       the keys you want directly in the .git.TERM file in [GITxxx-Keys]
       sections.

       If you have compiled the GIT package with HAVE_LIBTERMINFO, or on your
       system the termcap database is emulated using the terminfo library
       (like in the HP-UX system), don't bother about speed.

       See also the sections [GITxxx-Keys].

       The configuration file .gitrc.TERM is the file searched by
       git/gitps/gitview each time they are started, in order to configure
       themselves.  .gitrc.TERM it is first searched in the home directory
       then, if not found, in the directory $(prefix)/lib (usually
       /usr/lib/git). The configuration file is structured on sections, each
       section containing variables in the following format:

            variable_name = first_field;second_field; ...

       After the variable_name at least one space or tab is required.  All
       characters after a ´#´ are ignored and if you comment a section name,
       the whole section is ignored.

       The default configuration file .gitrc.TERM supports most of the usual
       commands. To find out more about them please read it.  git allows you
       to change both the utility used to perform a particular operation
       (using compress instead of gzip :-) ) and the key associated with it.
       There is also possible to remove/add new commands.

       The configuration file contains the following sections:

       1. [Setup]

       In this section the variables have only one field.

       a.  TempDirectory
        - this variable specifies the location of the temporary files created
       by git.

       b.  AnsiColors
        - this variable should be set to ON if the terminal supports standard
       ANSI color sequences. Otherwise it should be OFF.  If AnsiColors is ON,
       [GITxxx-Color] sections will be used in the configuration files
       .gitrc.TERM.  Otherwise, git/gitps/gitview will use the [GITxxx-
       Monochrome] sections.

       c.  UseLastScreenChar
        - this variable is used for terminals that can't write on the last
       character of the screen without scrolling the entire screen. If your
       terminal has no problem writing there (Linux console, vt100, vt102,
       xterm, ...) set it to ON.  Otherwise (hpterm), it should be OFF.


       2. [GIT-Setup]

       In this section the variables have only one field.

       a.  StartupFileDisplayMode
        - this variable specifies the file specific information displayed at
       startup. It can be any of OwnerGroup , DateTime , Size , Mode or
       FullName.
        - this value initially affects both panels but it can be changed
       separately afterward.

       b.  StartupFileSortMethod

        - this variable specifies the startup sort method. It can be any of
       Name , Extension , Size , Date , Mode , OwnerId , GroupId , OwnerName
       or GroupName.
        - this value initially affects both panels but it can be changed
       separately afterward.

       c.  StartupLeftPanelPath
       d.  StartupRightPanelPath
        - those variables specifies the startup path for each panel.

       e.  HistoryFile
        - this variable specifies the history file name. The default value is
       ~/.githistory.

       f.  NormalModeHelp
       g.  CommandLineModeHelp
        - those variables describe the status bar contents for each git mode
       when no errors occurred (git is idle).  git can display on the status
       bar a help string and/or some system information (system type,
       hostname, machine type and the current date) using escape characters
       (s, h, m or d preceded by backslash):
            s    ->      the system type
            h    ->      the host name
            m    ->      the machine type
            d    ->      the current date
            See also show-terminal.

            h.  InfoDisplay
             - if this variable is OFF, auxiliary file informations are not
            displayed.  This can be useful if you are using a very slow
            terminal.

            i.  LeadingDotMatch

             - if this variable is OFF, when matching files for select-files-
            matching-pattern / unselect-files-matching-pattern then the
            leading '.'  in the file name is matched only explicitly.


            3. [GITPS-Setup]

            In this section the variables have only one field.

            a.  GitPsModeHelp
             - this variable describe the gitps status bar contents.

            4. [GITVIEW-Setup]

            In this section the variables have only one field.

            a.  GitViewModeHelp
             - this variable describe the gitview status bar contents.

            5. [GITxxx-Color] / [GITxxx-Monochrome]

            In this sections the variables have only one field.

            These sections permits you to customize the colors of git, gitps
            and gitview.  Reading the .gitrc.TERM configuration file should be
            self explanatory.  See also the [Setup] section.

            6. [GIT-Keys]

            This section describes the actions git takes when a specified key
            is pressed. In this section a variable can have up to 6 fields
            separated by ´;´.  Each line in this section looks like:

            key_sequence = command_name;formatted_command;new_dir;
                           save_screen;pause;hide

            WARNING : you can't continue the variable fields description on
            the next line.


            a.  key_sequence
             - key_sequence is the key sequence associated with the given
            command. You can use any key sequence wich doesn't start with an
            ascii character (0x20 to 0x7e). You can specify the ESC character
            as ^[ , the ^ character as ^^ , the backspace character as ^_ ,
            the ctrl-space character as ^$ and the space character as ^@ .
            Ascii characters are used by the input line.

            You can use some symbolic key names instead of the key sequence:
            F0, F1, F2, ...  F10, UP, DOWN, RIGHT, LEFT, INS, DEL, HOME, END,
            PGUP and PGDOWN.  For the function & cursor keys, it's a better
            idea to get the key sequences from the termcap/terminfo database
            if they can be found there.  So, the command for the F1 key on the
            Linux console (the configuration file is .gitrc.console) can be:
                      F1  = GIT-HELP; man git
                 or
                      ^[A = GIT-HELP; man git
            If some key doesn't have a termcap/terminfo description (like the
            F11/F12 keys on the Linux console) you can specify the key
            sequence in the usual way.

            b.  command_name
             - command_name is a command generic name. Even if it is not
            always used, the command_name must be present (if a command is
            associated with key_sequence).  If it is not, no action will be
            taken when pressing key_sequence.  There are two types of commands
            in git : built-in commands and user defined commands.  If the
            command_name section contains a built-in command specification
            (copy, move, make-directory etc), the other fields are ignored.


            The BUILT-IN COMMANDS are:

            copy
             - copies files from one panel to another.

            move
             - moves files from one panel to another.

            make-directory
             - makes directories.

            delete
             - deletes files and directories.

            exit
             - exits git.

            previous-history-element
             - copies to the input line the previous command in the history
            list.

            show-terminal
             - switches between the two git modes (starting with Linux 0.99.12
            this option is completely used only if you are super user because
            normal users can't do a screen dump).

            refresh
             - refreshes the contents of the current panel.

            switch-panels
             - switches the left panel with the right one.

            next-history-element
             - copies the next command in the history list to the input line.

            panel-display-next-mode
             - switches to the next file display mode.

            panel-display-owner-group
             - displays the file owner & group.

            panel-display-date-time
             - displays the file date & time.

            panel-display-size
             - displays the file size.

            panel-display-mode
             - displays the file mode.

            panel-display-full-name
             - displays the full file name (if possible).

            panel-sort-next-method
             - switches to the next sort method.

            panel-sort-by-name
             - sorts the files by extension.

            panel-sort-by-extension
             - sorts the files by name.

            panel-sort-by-size
             - sorts the files by size.

            panel-sort-by-date
             - sorts the files by date.

            panel-sort-by-mode
             - sorts the files by mode.

            panel-sort-by-owner-id
             - sorts the files by owner id.

            panel-sort-by-group-id
             - sorts the files by group id.

            panel-sort-by-owner-name
             - sorts the files by owner name.

            panel-sort-by-group-name
             - sorts the files by group name.

            select-file
             - selects/unselects files. All the files can be selected by
            pressing '+' (and ENTER) or unselected by pressing '-'.  By
            pressing '*' selected files becomes unselected and unselected
            files becomes selected.

            file-to-input-line
             - copies to the input line the current file name .

            beginning-of-panel
             - puts the cursor onto the first entry in the current directory
            list.

            end-of-panel
             - puts the cursor onto the last entry in the current directory
            list.

            scroll-down
             - puts the cursor up one page in the current directory file list.

            scroll-up
             - puts the cursor down one page in the current directory file
            list.

            previous-line
             - puts the cursor up one entry in the current directory file
            list.

            next-line
             - puts the cursor down one entry in the current directory file
            list.

            other-panel
             - puts the cursor in the other panel.

            change-directory
             - changes the current directory to a user specified directory.

            hard-refresh
             - forces a screen refresh.

            select-files-matching-pattern
             - selects files matching a given pattern.

            unselect-files-matching-pattern
             - unselects files matching a given pattern.

            conform-current-directory
             - the other panel current directory will become the current
            directory of the current panel.

            conform-other-directory
             - the current directory of the current panel will become the
            current directory of the other panel.

            other-path-to-input-line
             - copy the other panel path to the input line.

            selected-files-to-input-line
             - copy all the current panel selected file names to the input
            line.

            backward-char
             - Move the point backward one character.

            forward-char
             - Move the point forward one character.

            backward-word
             - Move the point backward one word.

            forward-word
             - Move the point forward one word.

            beginning-of-line
             - Move the point at the beginning of the line.

            end-of-line
             - Move the point at the end of the line.

            delete-char
             - Delete the character at the point.

            backward-delete-char
             - Delete the character before the point.

            backward-kill-word
             - Kill characters backward until encountering the end of a word.

            kill-line
             - Delete the entire input line.

            kill-to-beginning-of-line
             - Delete the text between the beginning of the line and the
            point.

            kill-to-end-of-line
             - Delete the text between the point and the end of line.

            just-one-space
             - Remove all the tabs and spaces arround the point, leaving just
            one space.

            delete-horizontal-space
             - Remove all the tabs and spaces arround the point.

            action
             - If the current file is executable, runs it.  If it is a
            directory, chdir to it.

            set-mark
             - Set mark where point is.

            kill-region
             - Kill between point and mark.  The text is deleted but saved in
            the kill ring.

            kill-ring-save
             - Save the region as if killed, but don't kill it.

            yank
             - Reinsert the last stretch of killed text.

            exchange-point-and-mark
             - Exchange point and mark.


            c.  formatted_command
             - formatted_command is a shell command which can contain some
            scanf like format specifiers.  With their help you can get the
            current directory entry name (the directory entry under the
            cursor), owner, group and mode. These are the available format
            specifiers:

             - %s{question,default_answer}
            When git encounters a %s in the formatted_command asks the user
            the question 'question' whose default answer is 'default_answer'
            and replaces the %s{ , } with the user answer. Both 'question' and
            'default_answer' can contain any other format specifiers except
            %s.

            WARNING : no spaces between %s and ´{´.

             - %f
            git will replace %f with the current directory entry name only if
            it is a file (not a directory).

             - %d
            git will replace %d with the current directory entry name only if
            it is a directory (not a file).

             - %l
            git will replace %l with the current directory entry name only if
            it is a symbolic link with no target.

             - %t
            git will replace %t with the current directory entry name only if
            it is a named pipe.

             - %z
            git will replace %z with the current directory entry name only if
            it is a socket.

             - %a
            git will always replace %a with the current directory entry name.

             - %m
            git will always replace %m in the formatted_command with the
            current file mode.

             - %g
            git will always replace %g in the formatted_command with the
            current file group.

             - %o
            git will always replace %o in the formatted_command with the
            current file owner.

             - %p
            git will always replace %p in the formatted_command with the
            current panel path.

             - %b
            git will always replace %b in the formatted_command with the
            current panel directory name.

             - %i
            git will always replace %i in the formatted_command with all the
            current panel selected file names.

            Using uppercase format specifiers you will be able to access the
            other panel path, file and directory names.

            d.  new_dir
             - if the formatted_command successfully exits (exit code = 0) and
            this field is present then new_dir will become the current panel
            directory.  The character ~ used at the begining of the new_dir
            field is replaced by the user's home directory.

            e.  save_screen
             - this field is an character (usually 'y' or 'n') who tells git
            to save ('y') or not to save ('n') the terminal screen after
            executing the formatted_command.  Saving the screen is not
            necessary while editing or viewing a file because the information
            left after the editor or the viewer exits is not important. Saving
            the screen means that that screen will be restored before the
            execution of the next command. This field is used only if you are
            super user under Linux and you are working on a virtual console.
            By default this field is 'y'.

            f.  pause
             - for some commands you may wish to read their results     before
            repainting the panels. If this field is present git will wait for
            a key to be pressed before restoring the panels.  By default this
            field is 'n'.

            g.  hide
             - there are some commands that aren't displaying any useful
            information if successfully complete their execution: mount,
            chmod, chown, chgrp, sync ... and if an error occurs then a line
            or two are sended to stderr.   If this option is 'y', the stdout
            and stderr will be redirected to some files (stdout.pid and
            stderr.pid , where pid is git pid) and only if the command exit
            code is not 0, the stderr.pid file will be displayed, line by
            line, onto the status bar. This way the panels will not be deleted
            and then repainted and the command appears to be built-in.
            stdout.pid and stderr.pid are created in the TempDirectory
            specified in the [Setup] section. By default this field is 'n'.

            The default configuration file $HOME/.gitrc.TERM supports most of
            the usual commands. To find out more about them please read it.
            git allows you to change both the utility used to perform a
            particular operation (using compress instead of gzip :-) ) and the
            key associated with it. There is also possible to remove/add new
            commands.

            7. [GITPS-Keys]

            This section describes the actions gitps takes when a specified
            key is pressed. In this sections the variables have only one
            field. Only built-in operations are available in gitps.  Each line
            in this section looks like:

            key_sequence = built_in_command_name


            a.  key_sequence
             - key_sequence is the key sequence associated with the given
            command. You can use any key sequence wich doesn't start with an
            ascii character (0x20 to 0x7e). You can specify the ESC character
            as ^[ , the ^ character as ^^ and space as ^@ .

            b.  built_in_command_name
             - built_in_command_name is the name of the built-in operation to
            run when key_sequence is pressed. The built-in operations are:

            - previous-line - moves to the previous process in the processes
            list
            - next-line - moves to the next process in the processes list
            - scroll-down - moves one page up in the processes list
            - scroll-up - moves one page down in the processes list
            - beginning-of-panel - moves to the first process in the processes
            list
            - end-of-panel - moves to the last process in the processes list
            - next-signal - sets the next signal in the signals list as the
            current signal
            - SIGHUP
            - SIGINT
            - SIGQUIT
            - SIGILL
            - SIGFPE
            - SIGKILL
            - SIGUSR1
            - SIGSEGV
            - SIGUSR2
            - SIGPIPE
            - SIGALRM
            - SIGTERM
            - SIGCHLD
            - SIGCONT - sets the SIG... signal as the current signal
            - kill-process - sends the current signal to the current process
            - refresh - refresh the processes list by re-calling ps(1)
            - hard-refresh - force the screen refresh the screen by re-calling
            ps(1) and invalidating the terminal cache.
            - exit - exits

            8. [GITVIEW-Keys]

            This section describes the actions gitview takes when a specified
            key is pressed. In this sections the variables have only one
            field. Only built-in operations are available in gitview.  Each
            line in this section looks like:

            key_sequence = built_in_command_name


            a.  key_sequence
             - key_sequence is the key sequence associated with the given
            command. You can use any key sequence wich doesn't start with an
            ascii character (0x20 to 0x7e). You can specify the ESC character
            as ^[ , the ^ character as ^^ and space as ^@ .


            b.  built_in_command_name
             - built_in_command_name is the name of the built-in operation to
            run when key_sequence is pressed. The built-in operations are:

            - previous-line - moves to the previous line (16 bytes) in the
            file
            - next-line - moves to the next line (16 bytes) in the file
            - scroll-down - moves one page up (0x100 bytes) in the file
            - scroll-up - moves one page down (0x100 bytes) in the file
            - beginning-of-panel - moves to the beginning of the file
            - end-of-panel - moves to the end of the file
            - refresh - refresh the screen by re-reading the file
            - hard-refresh - force the screen refresh the screen by re-reading
            the file and invalidating the terminal cache.
            - exit - exits




CANCELING OPERATIONS
       All built-in operations and input requests can be stopped by pressing
       ^G.
       git can be suspended by pressing ^Z.



LIMITATIONS
       1.  Background execution is not fully supported. That means you may
       specify an & terminated command line in the configuration file but the
       result of the background executed command (stdout and stderr
       redirection, as explained before) will be overwritten by the result of
       newer commands and, if an error occurs, you will not see it.

       2.  When git is compiled for Linux, the default built-in color
       descriptions are for color monitors, so you can't (decently) run git on
       a b/w monitor without the .gitrc.TERM file correctly configured.
       .gitrc.TERM should be configured with ColorMonitor = OFF.  If you are
       working on a serial b/w tty, LinuxConsole should be OFF too.

       3.  Job support is implemented only in git.

       4.  Due to the fact that the ';' character is used as a field separator
       in the configuration files, you can't write something like that in the
       .gitrc.TERM files:

       ^AAA = SHOW-USERS-AND-GROUPS; more /etc/passwd; more /etc/group

       because 'more /etc/group' will be considered as a directory to switch
       to.  You must write a small script instead:

       #! /bin/sh
       more /etc/passwd; more /etc/group

       Supposing the script name is 'show_ug' , the .gitrc.TERM line will be
       like that:

       ^AAA = SHOW-USERS-AND-GROUPS; show_ug



BUGS
       These manual page is obsolete.  It documents version 4.3.5 of the GNU
       Interactive Tools package.  Only the GIT's info documentation is being
       updated.

       Please send bug reports to:
       tudor@cs.unh.edu


SEE ALSO
       termcap(5) terminfo(5) sh(1) ps(1) mount(8) umount(8) gitaction(1)
       gitmount(1) gitkeys(1) gitrgrep(1)


FILES
       /usr/bin/git
       /usr/bin/gitps
       /usr/bin/gitview
       /usr/man/man1/git.1
       /usr/man/man1/gitps.1
       /usr/man/man1/gitview.1
       /usr/info/git.info
       /usr/lib/git/.gitrc.TERM
       $HOME/.gitrc.TERM


AUTHORS
       Tudor Hulubei
       - tudor@cs.unh.edu
       Andrei Pitis
       - pink@pub.ro
       Politehnica University of Bucharest
       Romania



Release 4.3.6                    January 1995                           git(1)