Documentation / howto / use-git-daemon.txton commit Merge branch 'jc/unpack-trees' (7551391)
   1How to use git-daemon
   2
   3Git can be run in inetd mode and in stand alone mode. But all you want is
   4let a coworker pull from you, and therefore need to set up a git server
   5real quick, right?
   6
   7Note that git-daemon is not really chatty at the moment, especially when
   8things do not go according to plan (e.g. a socket could not be bound).
   9
  10Another word of warning: if you run
  11
  12        $ git ls-remote git://127.0.0.1/rule-the-world.git
  13
  14and you see a message like
  15
  16        fatal: The remote end hung up unexpectedly
  17
  18it only means that _something_ went wrong. To find out _what_ went wrong,
  19you have to ask the server. (Git refuses to be more precise for your
  20security only. Take off your shoes now. You have any coins in your pockets?
  21Sorry, not allowed -- who knows what you planned to do with them?)
  22
  23With these two caveats, let's see an example:
  24
  25        $ git daemon --reuseaddr --verbose --base-path=/home/gitte/git \
  26          --export-all -- /home/gitte/git/rule-the-world.git
  27
  28(Of course, unless your user name is `gitte` _and_ your repository is in
  29~/rule-the-world.git, you have to adjust the paths. If your repository is
  30not bare, be aware that you have to type the path to the .git directory!)
  31
  32This invocation tries to reuse the address if it is already taken
  33(this can save you some debugging, because otherwise killing and restarting
  34git-daemon could just silently fail to bind to a socket).
  35
  36Also, it is (relatively) verbose when somebody actually connects to it.
  37It also sets the base path, which means that all the projects which can be
  38accessed using this daemon have to reside in or under that path.
  39
  40The option `--export-all` just means that you _don't_ have to create a
  41file named `git-daemon-export-ok` in each exported repository. (Otherwise,
  42git-daemon would complain loudly, and refuse to cooperate.)
  43
  44Last of all, the repository which should be exported is specified. It is
  45a good practice to put the paths after a "--" separator.
  46
  47Now, test your daemon with
  48
  49        $ git ls-remote git://127.0.0.1/rule-the-world.git
  50
  51If this does not work, find out why, and submit a patch to this document.