GITCMD - Run one or more git commands

<< Click to Display Table of Contents >>

Navigation:  IBM i git commands >

GITCMD - Run one or more git commands


This CL command is used to perform specific git command options in sequence. 1-10 git command options can be chained together to run in sequence. 


The command also supports being called from RDI or other applications to perform commits when editing directly from the IFS instead of source member. 


Command Example to perform - git sync




       CMDOPTS('add .' 'commit -m "My Commit"' pull push)      









IFSREPODIR - Git repository IFS directory to perform selected actions for.



Specific IFS path - If you have a specific git repository directory you want to use, enter it. Example repo name: /gitrepos/lib001


*LIBREPODTAARA - If you have created and set the 255 character GITREPODIR data area within a specific library with a valid repo IFS path and you want to perform a regular git action against the git repo for that library, use this option. Note: You also have to make sure to enter the library name in the LIBRARY parameter in order for this option to work.


*CURRENTREPO - If you are setting the CURGITREPO data area in QTEMP via the SETCURREPO command, then you can use this option. Git repo name used will be whatever you set in CURGITREPO as long as it's not blanks.


*IFSFILEPARENT - If an RDI user is editing files from the IFS and wants to commit to the current repository for the library, this parameter allows them to pass the full IFS file path (&FP value in RDi User Actions) to the GITCMD via the FROMIFSFIL parameter, the repository will be determined by parsing the IFS file path automatically.  Ex: If IFS file name passed is: /gitrepos/qgpl/qclsrc/text.clp, the repo will be auto-determined to be /gitrepos/qgpl. See the Creating Rdi User Action Options for Git and IFS Files section for more info.


FROMIFSFIL - IFS File for *IFSFILEPARENT select. If *IFSFILEPARENT is selected for the IFSREPODIR parameter, this file name path will be used to auto-determine the git repo location. Default: *NONE


Ex: If IFS file name passed is: /gitrepos/qgpl/qclsrc/text.clp, the repo will be auto-determined to be /gitrepos/qgpl



Specify a valid IFS file path to use when auto-determining the IFS file parent repo.


*NONE - You are not using the *IFSFILEPARENT value for the current IFS repo.


LIBRARY - Library for lib repo data area. If you specify *LIBREPODTAARA for the git command you have to also specify the library where the GITREPODIR data area is located.


CRTIFSDIR - Create git repository IFS directory if not found.


CMDOPTS - Git command options to perform in sequence. Up to 10  Ex: to do sync proce        ss: add . / commit -m "My Commit" / pull / push 


CCSID - Coded character set ID for job. Default - 37


DSPSTDOUT - Display the outfile contents. Nice when debugging. Default: *NO


LOGSTDOUT - Place STDOUT log entries into the current jobs job log. Use this if you want the log info in the IBM i joblog. Default: *YES to capture all git logging to current job log. Git logs should normally not be large unless committing a LOT of files at once.


PRTSTDOUT - Print STDOUT to a spool file. Use this if you want a spool file of the log output. Default: *NO


DLTSTDOUT - This option insures that the STDOUT IFS temp files get cleaned up after processing. All IFS log files get created in the /tmp/gittemp directory. Default: *YES