2016-05-11 7 views
0

In diesem link, fand ich die folgende Bemerkung, die nicht viel Sinn für mich macht (Hervorhebung von mir ist):Bare-Repositories und Klonen

Bare Repositorys

Die --bare Flagge schafft ein Repository, das kein funktionierendes Verzeichnis hat, das es unmöglich macht, Dateien zu bearbeiten und Änderungen in dieses Repository zu committen. Zentrale Repositorys sollten immer als bare Repositories erstellt werden, da das Verschieben von Verzweigungen in ein Nicht-Bare-Repository das Potenzial hat, Änderungen zu überschreiben. Stellen Sie sich --bare als Weg zu markieren Sie ein Repository als Speichereinrichtung, im Gegensatz zu einer Entwicklung Umgebung. Dies bedeutet, dass für praktisch alle Git-Workflows das zentrale Repository leer ist und die lokalen Repositorys der Entwickler nicht-bare sind.

Nach dem Bare Repositorys Abschnitt gibt es ein Beispiel, für die ich nicht die folgende Aussage verstanden:

enter image description here

Was zwischen dieser Aussage und der Verwendung der Unterschied von die Git Klon Befehl erklärt direkt nach dem Beispiel in der Verbindung?

Antwort

-1

Bare-Repositories enthalten noch keine Dateistrukturen. Daher können sie nicht geändert werden. Wenn Sie ein Repository auf Github ohne Dateien erstellen, fordert Github Sie auf, zunächst einen Commit an das Repository zu senden, um es zu erstellen. Das liegt daran, dass das frische Repository auf Github ein bare Repository ist.

Entwickler arbeiten nicht innerhalb von blanken Repositories, denn wenn Sie in einem Repository arbeiten, ist es eine zweite Kopie des blanken Repositorys, das tatsächlich eine Dateistruktur enthält (es ist kein leeres Repository mehr).

Wenn Sie in einem leeren Repository arbeiten würden, gäbe es keine Dateiinformationen, die git verfolgt, was einen Widerspruch darstellt. Ein gültiges Git-Repository mit mindestens einem Commit ist nicht leer und ein Git-Repository ohne Commits ist leer.

Verstehen Sie dies, wenn Sie Ihre eigenen Git-Repositories hosten; Die Erklärung, die Ihnen gegeben wurde, ist gültig, weil Sie erfahren, wie Sie Ihre eigene Version eines Repositories einrichten. Wenn Sie ein Repository haben, das noch nicht festgeschrieben ist, handelt es sich um ein leeres Repository.

git clone ruft den Commit-Verlauf eines Repositorys vom zentralen Repository auf Ihren eigenen lokalen Computer ab; Ein geklontes Repository muss mindestens ein Commit haben, daher ist es nicht leer.

0

Es wird gesagt, dass, wenn Sie in irgendeiner Art von zentralisierter Art arbeiten, zuerst Sie ein zentrales Repository, dass jeder pull von und push zu machen. Sie machen das mit git init --bare.

Dann Klonen alle aus dem zentralen Repository mit git clone <url_to_newly_created_repository>