16 Stimmen

Git: vorhandenes Repository vom PC auf den Server verschieben, vom Server klonen

Ich habe ein vorhandenes Git-Repository auf meinem lokalen Rechner. Ich möchte dieses Repository auf meinen Webserver verschieben und dann git clone auf meinem lokalen Rechner ausführen, um mein Repository vom Server auszuchecken. Ich plane dann, auf meinem lokalen Rechner zu entwickeln und Aktualisierungen zurück auf den Server zu pushen. Ich kann von meinem lokalen Rechner aus ssh auf den Server zugreifen, aber nicht umgekehrt. Wie soll ich das angehen? Ich denke, dass git bundle irgendwie verwendet werden sollte, obwohl ich beim Versuch, mein Bundle auf meinem Server zu git clone, einen "warning: remote HEAD refers to nonexistent ref, unable to checkout" Fehler erhalten habe. Mein lokaler Rechner läuft unter OS X, der Server unter Linux.

29voto

Greg Hewgill Punkte 882617

Auf dem Linux-Server erstellen Sie in einem neuen Verzeichnis:

git init --shared --bare

Dann auf Ihrem lokalen Rechner:

git remote add origin server:path/to/repo
git push --all origin

Danach wird der Server eine vollständige Kopie des Repositories haben, und Sie werden in der Lage sein, darauf zuzugreifen und davon zu pushen und zu pullen. Es ist nicht notwendig, eine andere Kopie vom Server zu klonen, wenn Sie bereits eine lokal haben.

9voto

Lynnthear Punkte 91

Verwende anstelle von "git push origin master" "git push --all origin", um alle Zweige und nicht nur den Master-Zweig zu verschieben.

2voto

Paul Beckingham Punkte 13955

Wie wäre es damit:

local> cd my_repo.git
local> git remote add origin user@host:/path/to/my_repo.git
local> git config branch.master.remote origin
local> git config branch.master.merge refs/heads/master
local> git push origin master

Dadurch werden die Daten von Ihrem lokalen Repository auf Ihren Server übertragen. Machen Sie dann folgendes:

local> cd ..
local> git clone user@host:/path/to/my_repo.git my_repo2.git

Dann haben Sie vom Server geklont. Wenn Sie zufrieden sind, können Sie das ursprüngliche Repository loswerden und möglicherweise das zweite umbenennen.

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