2012-05-15 3 views
110

Ich versuche, für eine andere lokale Repo bak mit dem Namen auf meinem PC einen lokalen Repo wirkt als Fern zu machen, die folgende Verwendung:Wie eine lokale Repo hinzufügen und es als Remote-Repo behandelt

git remote add /home/sas/dev/apps/smx/repo/bak/ontologybackend/.git bak 

, die diesen Fehler gibt:

fatal: '/home/sas/dev/apps/smx/repo/bak/ontologybackend/.git' is not a valid remote name 

ich versuche, zwei lokale repos zu synchronisieren, mit einem als Remote bak für die anderen genannten konfiguriert und dann git pull bak Ausgabe.

Was ist der beste Weg, es zu tun?


Edit:

Sorry, dumm von mir, ich habe gerade realisiert, die Remote-Add sein sollte:

git remote add bak /home/sas/dev/apps/smx/repo/bak/ontologybackend/.git 

der Name des entfernten geht vor die Adresse.

Antwort

147

Sie haben Ihre Argumente an die remote add Befehl umgekehrt:

git remote add <NAME> <PATH> 

So:

git remote add bak /home/sas/dev/apps/smx/repo/bak/ontologybackend/.git 

Siehe git remote --help für weitere Informationen.

+3

Ist der 'am Ende .git' obwohl speziell erforderlich? –

+2

Es ist nur ein Weg ... Git ist es egal, wie es heißt. – larsks

+1

@ErikAigner traditionell, leere Repos enden mit einem Suffix ".git". Obwohl normalerweise nicht als eigenes Verzeichnis, sondern eher als "/path/to/projectname.git". - Abgesehen davon als dass es wenig Unterschied macht. – Atli

5

Es scheint, dass Ihr Format ist falsch:

If you want to share a locally created repository, or you want to take contributions from someone elses repository - if you want to interact in any way with a new repository, it's generally easiest to add it as a remote. You do that by running git remote add [alias] [url]. That adds [url] under a local remote named [alias].

#example 
$ git remote 
$ git remote add github [email protected]:schacon/hw.git 
$ git remote -v 

http://gitref.org/remotes/#remote

43

Wenn Ihr Ziel ist es, eine lokale Kopie des Repository für einfache Datensicherung oder zum Aufkleben auf ein externes Laufwerk zu halten oder Teilen über Cloud-Speicher (Dropbox, etc) möchten Sie möglicherweise eine bare repository verwenden. Auf diese Weise können Sie eine Kopie des Repositorys ohne ein Arbeitsverzeichnis erstellen, das für die Freigabe optimiert ist.

Zum Beispiel:

$ git init --bare ~/repos/myproject.git 
$ cd /path/to/existing/repo 
$ git remote add origin ~/repos/myproject.git 
$ git push origin master 

Ebenso können Sie klonen, als ob dies ein Repo-Fern waren:

$ git clone ~/repos/myproject.git 
+1

Dies sollte die akzeptierte Antwort sein, denn es passt perfekt zur Frage "Was ist der beste Weg dazu?". Das "lokale Repo wie ein Remote-Repo behandelt", wie @opensas es nannte, ist in der Tat ein blankes Verzeichnis (genau wie ein echtes Remote-Repository) – Jack

+1

Ich schlage eine Änderung vor: Ob Sie "Git Remot hinzufügen .." + " git push "oder einfach" git clone "wird hier angezeigt: https: // stackoverflow.com/a/31590993/5446285 (adelphus 'Antwort) – Jack

+1

@Jack - können Sie näher erläutern, was Sie verwirrend fanden? Ich bin glücklich, zu ändern, aber möchte die Antwort relativ kurz halten. –