Skip to content

Instantly share code, notes, and snippets.

@marceltn
Forked from garystafford/git_proxy_functions_v2.sh
Last active March 28, 2018 23:29
Show Gist options
  • Save marceltn/d312b853cd34688010f3cdec5d7529ed to your computer and use it in GitHub Desktop.
Save marceltn/d312b853cd34688010f3cdec5d7529ed to your computer and use it in GitHub Desktop.
v2 of Gist for blog post 'Revised Configuration of Git for Windows on a Corporate Network with Vagrant'. Easily turn proxy-related settings on and off for Git for Windows. 1) Add these functions to your ~\.bashrc file, 2) Change PROXY_SERVER, and PORT default values, 3) Open new Git Bash interactive shell window and execute function before using…
# configure proxy for git while on corporate network
function proxy_on(){
# assumes $USERDOMAIN, $USERNAME, $USERDNSDOMAIN
# are existing Windows system-level environment variables
# assumes $PASSWORD, $PROXY_SERVER, $PROXY_PORT
# are existing Windows current user-level environment variables (your user)
# environment variables are UPPERCASE even in git bash
export HTTP_PROXY="http://$USERNAME:$PASSWORD@$PROXY_SERVER.$USERDNSDOMAIN:$PROXY_PORT"
export HTTPS_PROXY=$HTTP_PROXY
export FTP_PROXY=$HTTP_PROXY
export SOCKS_PROXY=$HTTP_PROXY
export NO_PROXY="localhost,127.0.0.1,$USERDNSDOMAIN"
# Update git and npm to use the proxy
git config --global http.proxy $HTTP_PROXY
git config --system http.sslcainfo /bin/curl-ca-bundle.crt
git config --global http.sslcainfo /bin/curl-ca-bundle.crt
npm config set proxy "$HTTP_PROXY"
npm config set https-proxy "$HTTP_PROXY"
# npm config set strict-ssl false
# npm config set registry "http://registry.npmjs.org/"
# optional for debugging
export GIT_CURL_VERBOSE=1
# optional Self Signed SSL certs and
# internal CA certificate in an corporate environment
export GIT_SSL_NO_VERIFY=1
env | grep -e _PROXY -e GIT_ | sort
echo -e "\nProxy-related environment variables set."
}
# remove proxy settings when off corporate network
function proxy_off(){
variables=( \
"HTTP_PROXY" "HTTPS_PROXY" "FTP_PROXY" "SOCKS_PROXY" \
"NO_PROXY" "GIT_CURL_VERBOSE" "GIT_SSL_NO_VERIFY" \
)
for i in "${variables[@]}"
do
unset $i
done
env | grep -e _PROXY -e GIT_ | sort
echo -e "\nProxy-related environment variables removed."
}
# if you are always behind a proxy uncomment below
#proxy_on
# increase verbosity of Vagrant output
export VAGRANT_LOG=INFO
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment