2016-05-25 5 views
0

Ich lese gerade aus diesem Artikel here und verstehe nicht, wie es kein Arbeitsverzeichnis gibt, wenn Sie git init --bare. Wie kann es kein Arbeitsverzeichnis geben? Ist das nicht das Verzeichnis, in dem sich alle Ihre Dateien befinden? Wenn Sie eine Datei in Ihrem Repo erstellen, startet das sowieso kein Arbeitsverzeichnis?Wie kann es kein Arbeitsverzeichnis in git bare geben?

ich die zweite Kugel nicht verstehen auch, das ist:

Es gibt keine .git Verzeichnis erstellt. Stattdessen werden die Dateien, die sich normalerweise im Verzeichnis .git befinden, im Verzeichnis der obersten Ebene abgelegt, in dem sich normalerweise das aktive Verzeichnis befindet.

Welchen Zweck hat es, kein .git-Verzeichnis zu haben? Wie funktioniert dieses Ergebnis in dem Beispiel des Autors zum Schöpfer eines nicht-bare Repo tun git status und zu sehen, dass

git eine andere Objektdatenbank finden würden und unterschiedliche Ergebnisse für diesen Lauf von git Status geben.

Antwort

3

Die Unterscheidung zwischen einem leeren und nicht leeren Git Repository ist irreführend und kann Neulinge verwirren.

Wie kann es kein Arbeitsverzeichnis geben? Ist das nicht das Verzeichnis, in dem sich alle Ihre Dateien befinden?

Nr Eigentlich alle Informationen (dh. Alle Daten, die ein Git-Repository bilden) im .git/ Ordner gespeichert ist, die in Ihrem Projekt Stammverzeichnis befindet (vorausgesetzt, es ist ein nicht-bare Repo) und das ist Alle Git selbst muss ein Arbeitsverzeichnis erstellen.

Das Arbeitsverzeichnis enthält keinen Status bezüglich des Repositorys (z. B. Verzweigungen, Tags, Commits) und ist technisch kein Teil davon (dh es ist nicht notwendig). Es ist nur eine Möglichkeit für den Programmierer, die Dateien zu bearbeiten.

Es kann hilfreich sein zu verstehen, dass wenn Sie einen regulären Klon aus einem Repository auf Github machen, das Repository auf Githubs Servern ist ein blankes Repository, aber Sie erhalten ein nicht-bare Repository.

Nun zu Ihrer zweiten Frage.

Welchen Zweck hat es, kein .git-Verzeichnis zu haben?

Denken Sie darüber nach: Was ist der Zweck eines Arbeitsverzeichnisses in einem Git-Server? Die auf Servern gespeicherten Repositories benötigen das Arbeitsverzeichnis nicht, da niemand SSH in einen Git-Server eingibt und die Dateien dort direkt editiert.

So die Repository-Struktur wird vereinfacht, indem nur was notwendig ist, was der Inhalt der .git/ Verzeichnis ist. Außerdem wird der Inhalt des Verzeichnisses .git/ in den Stammordner des Projekts geschrieben, da es nicht sinnvoll wäre, sie in .git/ zu speichern, da keine anderen Dateien im Stammverzeichnis vorhanden sind.

+0

wo ist das Arbeitsverzeichnis in einem nicht-leeren Repo? – akantoword

+1

@jlei Es ist eigentlich der Stammordner des Projekts und besteht im Wesentlichen aus jeder Datei/jedem Verzeichnis, die von git (neben '.git /') verfolgt wird. – Agis

+0

in Bezug auf Ihren Kommentar zu Githubs Repo-Nacktheit - wenn es bereits leer ist, warum sollte ich jemals die -bare-Option verwenden, wenn Github es für mich tun würde? Wäre es nur, wenn ich es durch meinen lokalen Fahrer mit anderen teile? – akantoword

Verwandte Themen