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.
Antworten
Zu viele Anzeigen?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.
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.