[linux-l] Git-Verständnisfrage

olafBuddenhagen at gmx.net olafBuddenhagen at gmx.net
Sa Okt 31 05:42:33 CET 2009


Hallo,

On Tue, Oct 06, 2009 at 06:52:46PM +0200, Andreas Roehler wrote:

> So ich das recht verstehe - bin nur git-Gelegenheitsnutzer - unterhält
> Git ein Repo-im-Repo, den sogenannten Index.
> 
> Wenn ich eine Datei lokal editiere, habe ich während der Zeit vor dem
> Commit kein VC- bzw. muß es lokal extra z.B. unter RCS nehmen.
> 
> Git scheint diese lokale Versionsverwaltung mitzubringen.

Du kannst natuerlich in Deinem Repository so viele lokale Commits haben
wie Du moechtest (einer der groszen Vorteile einer verteilten
Versionsverwaltung!); aber das hat nix mit dem Index zu tun...

Der Index speichert lediglich den letzten mit "git add" festgehaltenen
Zustand. Wobei der Index selbst -- wie der Name eigentlich schon sagt
:-) -- nur Verweise (d.h. sha1-Hashes) speichert; waehrend die
eigentlichen Dateiobjekte direkt im Repository landen, genau wie Sachen
die schon commited sind -- nur dass vor dem Commit der Index das
*einzige* ist was auf diese Objekte verweist, wohingegen sie nach dem
Commit permanente Verweise im Repository selbt (in Form von
Commit-Objekten) bekommen, die dann auch bei einem "git clone"
mitkopiert werden, im Gegensatz zu denen, die bisher nur durch den Index
referenziert werden.

Der Index -- der ja nur Verweise enthaelt -- belegt dabei selbst
praktisch keinen zusaetzlichen Speicherplatz; die Objekte, die der Index
referenziert, und die noch nicht Bestandteil eines Commits sind,
hingegen schon. Muesste allerdings schon ein sehr spezieller Fall sein,
damit das einen wesentlichen Unterschied ausmacht. (Grosze Dateien mit
"git add" dem Index hinzugefuegt, aber noch nicht commited.)

Habe ich es nun geschafft, Dich noch mehr zu verwirren?... ;-)

-Olaf-



Mehr Informationen über die Mailingliste linux-l