If you are in a trusted environment, or you already have an alternative access/authorization mechanism in place, using SSH keys for git is sometimes an annoyance. Turns out you can easily get rid of that, although you should only do that if you are 100% sure what you are doing.
WARNING The following will make your git repository public and anybody will be able to write to it
$ touch .git/git-daemon-export-ok
$ git config daemon.receivepack true
If you receive the following error:
$ git push origin master
Counting objects: 5, done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 323 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
error: unpack failed: unpacker exited with error code
To git://server/git/test.git
! [remote rejected] master -> master (n/a (unpacker error))
error: failed to push some refs to ‘git://server/git/test.git’
Make sure your repository is owned by the user running git-daemon on the server.
Thanks a lot man! I was looking for a simple way to make my Git repo’s publicly available. I know it’s a ‘security risk’.
But I wasn’t able to ‘git push origin master’ my local Git working changes back to my git://servername.com/git-repo-name on my MacMini.
This ‘git config daemon.receivepack true’ thing was the final piece that made it work. Thanks man.
The downside of the Git protocol is the lack of authentication.
So WRITE access = RISK!
Generally, you’ll pair it with SSh or HTTPS access for the few developers who have push (write) access and have everyone else use git:// for read-only access.