Ich habe ein existierendes Git Repository auf meinem lokalen Rechner. Ich möchte dieses Repository auf meinen Webserver verschieben, dann git clone
auf meinem lokalen Rechner, um mein Repository vom Server aus zu checken. Ich plane dann, auf meinem lokalen Rechner zu entwickeln und Updates auf den Server zu schieben. Ich kann von meiner lokalen Maschine zum Server ssh, aber nicht umgekehrt. Wie soll ich das machen? Ich denke, git bundle sollte irgendwie verwendet werden, obwohl, wenn ich versuchte git clone
mein Bundle auf meinem Server, habe ich eine "Warnung: Remote HEAD bezieht sich auf nicht vorhandene Ref, nicht zur Kasse" Fehler. Auf meinem lokalen Computer läuft OS X, auf dem Server läuft Linux.Git: Vorhandenes Repository von PC auf Server verschieben, vom Server klonen
16
A
Antwort
29
Auf dem Linux-Server in einem neuen Verzeichnis zu tun:
git init --shared --bare
dann auf dem lokalen Computer:
git remote add origin server:path/to/repo
git push --all origin
Danach wird der Server eine vollständige Kopie des Repository haben wird, und Sie werden in der Lage sein, zu und von ihm zu drücken und zu ziehen. Sie müssen keinen anderen Klon vom Server auschecken, wenn Sie bereits einen lokal haben.
2
Wie wäre es damit:
local> cd my_repo.git
local> git remote add origin [email protected]:/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
, dass die Daten von Ihrem lokalen Repo auf den Server senden. Dann folgendes tun:
local> cd ..
local> git clone [email protected]:/path/to/my_repo.git my_repo2.git
Dann werden Sie vom Server geklont haben. Wenn Sie damit zufrieden sind, können Sie das ursprüngliche Repo entfernen und möglicherweise das zweite umbenennen.
9
Anstelle von "git push origin master" verwenden Sie "git push --all origin", so dass Sie über alle Zweige und nicht nur den Master-Zweig bewegen.
Verwandte Themen
- 1. Git Repository Klonen Protokollierung
- 2. Klonen Repository von Gitweb
- 3. VisualSVN-Server an ein vorhandenes Repository anhängen
- 4. git push/klonen zu neuen Server
- 5. Git automatisch vom Repository in Staging-Server ziehen?
- 6. Wie klonen Repository zu einem Remote-Server/Repository mit Mercurial
- 7. Anwenden von git .gitignore-Regeln auf ein vorhandenes Repository
- 8. Push ein lokales mercurial Repository zu einem Remote-Server oder Klonen auf Server von lokalen
- 9. Herunterladen großer Dateien vom OAS-Server auf PC
- 10. Git über ssh ohne Git auf dem Server installiert
- 11. Passwort Problem beim Klonen Git-Repository von Bitbucket
- 12. Git schlägt auf ftp-server zu schieben
- 13. Git-Repository-Server Ich kann lokal hosten
- 14. Python Weg, ein Git-Repository zu klonen
- 15. Git log ohne das Repository zu klonen?
- 16. "fatal" beim Versuch, das Git-Repository in Cygwin zu klonen
- 17. Ich kann ein Git-Repository nicht klonen
- 18. Verschieben von MongoDB-Daten vom Staging-Server in Produktion
- 19. Geschwindigkeitsmessung zwischen Unix-Server und PC
- 20. Datei vom Server-Ordner zum Client-PC herunterladen
- 21. GIT: Wie git Repository auf WHM Centos Server erstellen und mit SourceTree verbinden
- 22. Lokales Repository in bestimmten Ordner des GIT Server Repo hinzufügen
- 23. Kann Git Repo in vorhandenen ausgecheckt Git-Repository nicht klonen
- 24. Git auf dem Server (Windows Server 2012)
- 25. kann nicht klonen Repository von gcloud
- 26. Verschieben einer Datei auf einen anderen Server
- 27. Verschieben eines SVN-Repository, wenn der Server tot ist
- 28. ein vorhandenes Projekt in gitLab klonen
- 29. Track Gps Geräteort auf PC/Server/Handy
- 30. kann nicht git-Repository
Wenn ich 'git push origin master' tue, bekomme ich einen langen Fehler, der mit" Total 0 (Delta 0), wieder verwendet 0 (Delta 0) remote: error: ablehnen zu aktualisieren ausgecheckt Zweig: refs/heads/Master remote: Fehler: Standardmäßig wird der aktuelle Zweig in einem Nicht-Nackt-Repository aktualisiert ". Der einzige Inhalt meiner Repos auf dem Linux-Server ist ".. .git HEAD-Zweige config description hooks info objects refs", was der 'git init --shared --bare'-Befehl ist. Ich benutze git 1.7.1.1 auf beiden Computern. –
Whoop, macht nichts! Ich habe es gerade zur Arbeit gebracht. Ich hatte nicht wirklich ein neues Verzeichnis auf dem Linux-Server erstellt, ich hatte gerade den Inhalt meines Inhalts entfernt, bevor ich den Befehl 'git init ...' ausführte. Erstellen eines neuen Verzeichnisses, 'git init ...', Ändern, um diesen Ursprung aus meinen lokalen Repos zu verwenden, und dann pushen funktioniert. –
Das funktioniert im Prinzip gut, aber ich brauchte ein paar zusätzliche Schritte, damit es funktioniert, weil mein Server einen nicht standardmäßigen SSH-Port ausführt: unter OS X. Ich begann mit der Installation von ssh-askpass (https://github.com/ markcarver/mac-ssh-askpass), dann musste ich den Port in ~/.ssh/config konfigurieren (siehe http://stackoverflow.com/a/5738592/217953), unter Verwendung der URL im SCP-Stil. – xgretsch