387 Stimmen

Wie verwenden Sie das Repository "git --bare init"?

Ich muss ein zentrales Git-Repository erstellen, aber ich bin ein wenig verwirrt...

Ich habe eine bloße Repository (in meinem Git-Server, Maschine 2) mit erstellt:

$ mkdir test_repo
$ git --bare init

Jetzt muss ich Dateien aus meinem lokalen Repository (Rechner 1) in das Bare Repository (Rechner 2) übertragen. Ich habe per SSH Zugriff auf Rechner 2. Die Sache ist die, dass ich das Konzept eines Bare Repositorys nicht verstehe...

Wie speichere ich meinen Code am besten im Bare Repository? Wie kann ich Änderungen aus meinem lokalen Repository in das Bare Repository übertragen?

Ist es richtig, ein zentrales Repository zu haben, wenn man ein reines Repository hat?

Ich bin bei diesem Thema etwas verwirrt. Bitte geben Sie mir einen Hinweis dazu.

17voto

VonC Punkte 1117238

Das sollte ausreichen:

git remote add origin <url-of-bare-repo>
git push --all origin

Siehe für weitere Details " GIT: Wie aktualisiere ich mein Bare Repo? ".
Notas:

  • können Sie einen anderen Namen verwenden als ' origin ' für die bloße Repo-Fernreferenz.
  • Dies wird Ihre Tags nicht vorantreiben, Sie benötigen eine separate git push --tags origin dafür.

6voto

Jack' Punkte 1081

Basierend auf den Antworten von Mark Longair und Roboprog:

wenn Git-Version >= 1.8

git init --bare --shared=group .git
git config receive.denyCurrentBranch ignore

Oder :

wenn Git-Version < 1.8

mkdir .git
cd .git
git init --bare --shared=group 
git config receive.denyCurrentBranch ignore

5voto

Russell Punkte 71

Es ist gut, zu überprüfen, ob der Code, den Sie veröffentlicht haben, auch tatsächlich übertragen wurde.

Sie können ein Protokoll der Änderungen an einem Bare Repository erhalten, indem Sie den Pfad explizit mit der Option --relative angeben.

$ cd test_repo
$ git log --relative=/

Dies zeigt Ihnen die übertragenen Änderungen an, als ob es sich um ein normales Git-Repository handeln würde.

3voto

Sameer Ranjan Punkte 61

Sie können die folgenden Befehle ausführen, um Ihr lokales Repository zu initialisieren

mkdir newProject
cd newProject
touch .gitignore
git init
git add .
git commit -m "Initial Commit"
git remote add origin user@host:~/path_on_server/newProject.git
git push origin master

Sie sollten an Ihrem Projekt in Ihrem lokalen Repository arbeiten und den Server als zentrales Repository verwenden.

Sie können auch diesen Artikel lesen, in dem jeder einzelne Aspekt der Erstellung und Pflege eines Git-Repositorys erläutert wird. Git für Einsteiger

2voto

Jie Zhang Punkte 39

Das Flag --bare erzeugt ein Repository ohne Arbeitsverzeichnis. Das nackte Repository ist das zentrale Repository und Sie können hier keine Codes bearbeiten (speichern), um den Fehler beim Zusammenführen zu vermeiden.

Wenn Sie beispielsweise eine Datei in Ihrem lokalen Repository (Rechner 1) hinzufügen und sie in das Bare Repository verschieben, können Sie die Datei im Bare Repository nicht sehen, da sie immer "leer" ist. Wenn Sie jedoch wirklich etwas in das Repository verschieben, können Sie es sehen, indem Sie ein anderes Repository auf Ihrem Server (Rechner 2) klonen.

Sowohl das lokale Repository auf Rechner 1 als auch das "Copy"-Repository auf Rechner 2 sind nicht leer. Beziehung zwischen bloßen und nicht bloßen Repositorien

Der Blog wird Ihnen helfen, sie zu verstehen. https://www.atlassian.com/git/tutorials/setting-up-a-repository

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X