Security
Making public the .git
directory is just like make public your repo. If there's no sensitive information in your repo (keys written to hooks or remote-paths what contains secrets, files with plain-text passwords) then it is ok to share.
Debugging
Git has a fairly complete set of traces embedded which you can use to debug your git problems.
To turn them on, you can define the following variables:
GIT_TRACE
for general traces,
GIT_TRACE_PACK_ACCESS
for tracing of packfile access,
GIT_TRACE_PACKET
for packet-level tracing for network operations,
GIT_TRACE_PERFORMANCE
for logging the performance data,
GIT_TRACE_SETUP
for information about discovering the repository and environment it’s interacting with,
GIT_MERGE_VERBOSITY
for debugging recursive merge strategy (values: 0-5),
GIT_CURL_VERBOSE
for logging all curl messages (equivalent to curl -v
),
GIT_TRACE_SHALLOW
for debugging fetching/cloning of shallow repositories.
Possible values can include:
true
, 1
or 2
to write to stderr,
- an absolute path starting with
/
to trace output to the specified file.
For more details, see: Git Internals - Environment Variables
SSH
For SSH issues, try the following commands:
echo 'ssh -vvv $*' > ssh && chmod +x ssh
GIT_SSH="$PWD/ssh" git pull origin master
or use ssh
to validate your credentials, e.g.
ssh -vvvT git@github.com
or over HTTPS port:
ssh -vvvT -p 443 git@ssh.github.com
Note: Reduce number of -v
to reduce the verbosity level.
Examples
$ GIT_TRACE=1 git status
20:11:39.565701 git.c:350 trace: built-in: git 'status'
$ GIT_TRACE_PERFORMANCE=$PWD/gc.log git gc
Counting objects: 143760, done.
...
$ head gc.log
20:12:37.214410 trace.c:420 performance: 0.090286000 s: git command: 'git' 'pack-refs' '--all' '--prune'
20:12:37.378101 trace.c:420 performance: 0.156971000 s: git command: 'git' 'reflog' 'expire' '--all'
...
$ GIT_TRACE_PACKET=true git pull origin master
20:16:53.062183 pkt-line.c:80 packet: fetch< 93eb028c6b2f8b1d694d1173a4ddf32b48e371ce HEAD\0multi_ack thin-pack side-band side-band-64k ofs-delta shallow no-progress include-tag multi_ack_detailed symref=HEAD:refs/heads/master agent=git/2:2.6.5~update-ref-initial-update-1494-g76b680d
...