NAME

git-client - Git Client Wrapper

DESCRIPTION

Wrapper around the real git provide additional functionality.

GIT_CONFIG Override

Allows for .gitconfig descent override. It will traverse up the parent directories until a .gitconfig is found, then it will use that instead of only looking at HOME.

-O <OPTION>

Populates GIT_OPTION_* environment variables on server side. These ENV settings will be available to all the server side hooks, including the pre-* hooks. Note that for this to work, the git ssh server must have "AcceptEnv XMODIFIERS" enabled in its sshd_config.

DEBUG

Sets DEBUG environment on server side to match the same numeric value as set on the client invoker.

INSTALL

Just make sure this program comes BEFORE the real "git" program in the PATH.

For example, as super user, you could do this:

[root@deploy-host ~]# wget https://raw.githubusercontent.com/hookbot/git-server/master/git-client
[root@deploy-host ~]# chmod 755 git-client
[root@deploy-host ~]# mv -i git-client /usr/local/bin/git
[root@deploy-host ~]#

Or as normal user, you could do this:

[root@deploy-host ~]$ wget https://raw.githubusercontent.com/hookbot/git-server/master/git-client
[root@deploy-host ~]$ chmod 755 git-client
[root@deploy-host ~]$ mkdir -p ~/bin
[root@deploy-host ~]$ mv -i git-client ~/bin/git
[root@deploy-host ~]$ grep 'PATH=$HOME/bin' ~/.bash_profile || echo 'export PATH=$HOME/bin:$PATH' | tee -a ~/.bash_profile
[root@deploy-host ~]$

SYNOPSIS

cd ~/src/github/project
touch ../.gitconfig
git config --global user.email 'hookbot@github.com'
git config --global --list

PURPOSE

Allows you to use many different .gitconfig files within each folder of git repos. If there is no .gitconfig within the directory descent structure, then it will behave exactly like the normal git.

AUTHOR

Rob Brown <bbb@cpan.org>

COPYRIGHT AND LICENSE

Copyright 2016-2025 by Rob Brown <bbb@cpan.org>

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.