Home Explore Blog CI



git

4th chunk of `Documentation/giteveryday.adoc`
4e4f06063c8314c3d1ef6b1880c5431924ad5cf6f6d9a3960000000100000a93
 maint next seen <11>
    do
	git show-branch ko/$branch $branch <12>
    done
$ git push --follow-tags ko <13>
------------
+
<1> see what you were in the middle of doing, if anything.
<2> see which branches haven't been merged into `master` yet.
Likewise for any other integration branches e.g. `maint`, `next`
and `seen`.
<3> read mails, save ones that are applicable, and save others
that are not quite ready (other mail readers are available).
<4> apply them, interactively, with your sign-offs.
<5> create topic branch as needed and apply, again with sign-offs.
<6> rebase internal topic branch that has not been merged to the
master or exposed as a part of a stable branch.
<7> restart `seen` every time from the next.
<8> and bundle topic branches still cooking.
<9> backport a critical fix.
<10> create a signed tag.
<11> make sure master was not accidentally rewound beyond that
already pushed out.
<12> In the output from `git show-branch`, `master` should have
everything `ko/master` has, and `next` should have
everything `ko/next` has, etc.
<13> push out the bleeding edge, together with new tags that point
into the pushed history.

In this example, the `ko` shorthand points at the Git maintainer's
repository at kernel.org, and looks like this:

------------
(in .git/config)
[remote "ko"]
	url = kernel.org:/pub/scm/git/git.git
	fetch = refs/heads/*:refs/remotes/ko/*
	push = refs/heads/master
	push = refs/heads/next
	push = +refs/heads/seen
	push = refs/heads/maint
------------


Repository Administration[[ADMINISTRATION]]
-------------------------------------------

A repository administrator uses the following tools to set up
and maintain access to the repository by developers.

  * linkgit:git-daemon[1] to allow anonymous download from
    repository.

  * linkgit:git-shell[1] can be used as a 'restricted login shell'
    for shared central repository users.

  * linkgit:git-http-backend[1] provides a server side implementation
    of Git-over-HTTP ("Smart http") allowing both fetch and push services.

  * linkgit:gitweb[1] provides a web front-end to Git repositories,
    which can be set-up using the linkgit:git-instaweb[1] script.

link:howto/update-hook-example.html[update hook howto] has a good
example of managing a shared central repository.

In addition there are a number of other widely deployed hosting, browsing
and reviewing solutions such as:

  * gitolite, gerrit code review, cgit and others.

Examples
~~~~~~~~
We assume the following in /etc/services::
+
------------
$ grep 9418 /etc/services
git		9418/tcp		# Git Version Control System
------------

Run git-daemon to serve /pub/scm from inetd.::
+
------------
$ grep git /etc/inetd.conf
git	stream

Title: Git Repository Administration
Summary
This section covers the administration of a Git repository, including setting up and maintaining access for developers, using tools such as `git-daemon`, `git-shell`, `git-http-backend`, and `gitweb`, as well as providing examples of how to configure and run these tools to provide anonymous download, restricted login shell, and web front-end services for the repository.