git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Git 1.0 Synopis (Draft v4)

From
RARyan Anderson <ryan@michonline.com>
Date
Aug 15, 2005, 04:55 UTC
Message-ID
<20050815045546.GA7001@mythryan2.michonline.com>
In-Reply-To
<200507312215.j6VMFeqn030963@laptop11.inf.utfsm.cl>
On Sun, Jul 31, 2005 at 06:15:40PM -0400, Horst von Brand wrote:
> Ryan Anderson <ryan@michonline.com> wrote:
> > Source Code Management with Git
> 
> More bugging...
Ok, I think I've got all this addressed (plus the other email).
It just took me a lot longer to get to it than I planned.

Junio, do you want to pull this into the git tree? (I'll reply with a patch)

==========
Source Code Management with git

In Linus's own words as the creator of git: "git" can mean anything, depending on your mood.

 - random three-letter combination that is pronounceable, and not
   actually used by any common UNIX command.  The fact that it is a
   mispronunciation of "get" may or may not be relevant.
 - stupid. contemptible and despicable. simple. Take your pick from the
   dictionary of slang.
 - "global information tracker": you're in a good mood, and it actually
   works for you. Angels sing, and a light suddenly fills the room. 
 - "goddamn idiotic truckload of sh*t": when it breaks

git is a "directory content manager". git has been designed to handle absolutely massive projects with speed and efficiency, and the release of the 2.6.12 and (soon) the 2.6.13 version of the Linux kernel would indicate that it does this task well.

git falls into the category of distributed source code management tools, similar to Arch or Darcs (or, in the commercial world, BitKeeper). Every git working directory is a full-fledged repository with full revision tracking capabilities, not dependent on network access to a central server.

git provides a content-addressable pseudo filesystem, complete with its own version of fsck.

  o Speed of use, both for the project maintainer, and the end-users, is
    a key development principle.
  o The history is stored as a directed acyclic graph, making long-lived
    branches and repeated merging simple.
  o The core git project considers itself to provide "plumbing" for other
     projects, as well as to serve to arbitrate for compatibility between them.
     The project built on top of the core git are referred to as "porcelain".
     Stgit, Cogito, qgit, gitk and gitweb are all building upon the core git
     tools, and providing an easy to use interface to various pieces of
     functionality.
  o Some other projects have taken the concepts from the core git project, and
    are either porting an existing toolset to use the git tools, or
    reimplementing the concepts internally, to benefit from the performance
     improvements.  This includes both Arch 2.0, and Darcs-git.
  
  o Two, interchangeable, on-disk formats are used:
    o An efficient, packed format that saves space and network
      bandwidth.
    o An unpacked format, optimized for fast writes and incremental
      work.
To get a copy of git:
	Daily snapshots are available at:
	http://www.codemonkey.org.uk/projects/git-snapshots/git/
	(Thanks to Dave Jones)
	Source tarballs and RPMs at:
	http://www.kernel.org/pub/software/scm/git/
	Debian packages should be availabe in unstable (sid) as "git-core"
	Or via git itself:
	git clone http://www.kernel.org/pub/scm/git/git.git/ <local directory>
	git clone rsync://rsync.kernel.org/pub/scm/git/git.git/ <local directory>
	(rsync is generally faster for an initial clone, you can switch later
	by editing .git/branches/origin and changing the url)
To get the 'Porcelain' tools mentioned above:
	SCM Interface layers:
	cogito - http://www.kernel.org/pub/software/scm/cogito/
	Patch Management (similar to Quilt):
	StGIT - http://www.procode.org/stgit/
	History Visualization:
	gitk - http://ozlabs.org/~paulus/gitk/ (Included in the standard git
		distribution)
	gitweb - http://www.kernel.org/pub/software/scm/gitweb/
	qgit - http://sourceforge.net/projects/qgit

git distributions contain a tutorial in the Documentation subdirectory. Additionally, the Kernel-Hacker's git Tutorial at http://linux.yyz.us/git-howto.html may be useful. (Thanks to Jeff Garzik for that document)

git development takes place on the git mailing list. To subscribe, send an email with just "subscribe git" in the body to majordomo@vger.kernel.org. Mailing list archives are available at http://marc.theaimsgroup.com/?l=git

(This summary written by Ryan Anderson <ryan@michonline.com>. Please bug him with any corrections or complaints.)

-- 
Ryan Anderson
  sometimes Pug Majere
Previous: Horst von BrandNext: Ryan Anderson
Message 2 of 19 in “Re: Git 1.0 Synopis (Draft v3”
  1. Horst von BrandJul 31, 2005
  2. Git 1.0 Synopis (Draft v4)Ryan Anderson, Aug 15, 2005
  3. Ryan AndersonAug 15, 2005
  4. Junio C HamanoAug 15, 2005
  5. Ryan AndersonAug 15, 2005
  6. Junio C HamanoAug 15, 2005
  7. Ryan AndersonAug 15, 2005
  8. Junio C HamanoAug 15, 2005
  9. Daniel BarkalowAug 15, 2005
  10. Junio C HamanoAug 16, 2005
  11. Johannes SchindelinAug 16, 2005
  12. Dongsheng SongAug 16, 2005
  13. about git server & permissionsDongsheng Song, Aug 16, 2005
  14. Johannes SchindelinAug 16, 2005
  15. Daniel BarkalowAug 16, 2005
  16. Daniel BarkalowAug 16, 2005
  17. Horst von BrandMay 29, 2006
  18. Horst von BrandMay 29, 2006
  19. Eric WongMay 29, 2006

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.