2012-05-15 68 views
110

我試圖做一個本地回購作爲與名bak遠程爲我的電腦上的另一個本地回購,使用以下:如何添加本地回購並把它作爲一個遠程回購

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

這給這個錯誤:

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

我想同步兩個本地回購,同一​​個配置爲遠程命名bak爲其他,然後發出git pull bak

這樣做的最佳方法是什麼?


編輯:

對不起,我傻,我只是實現遠程添加應該是:

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

遠程名地址之前去

回答

147

你有你的參數傳遞給remote add命令逆轉:

git remote add <NAME> <PATH> 

所以:

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

更多信息請參見git remote --help

+3

是'.git'在雖然明確要求結束了嗎? –

+2

這只是一個路徑...... Git不在乎它的名字。 – larsks

+1

@ErikAigner傳統上,裸回購將以「.git」後綴結尾。儘管通常不是它自己的目錄,而是如下所示:「/path/to/projectname.git」。 - 除此之外,它沒有什麼區別。 – Atli

5

看來,你的格式不正確:

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

如果你的目標是保持庫的本地副本,便於備份或粘到外部驅動器或通過雲存儲共享(Dropbox等),您可能需要使用bare repository。這使您可以創建存儲庫的副本,而無需工作目錄,爲共享進行了優化。

例如:

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

同樣可以克隆彷彿這是一個遠程回購:

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

這應該是被接受的答案,因爲它完全符合「最好的辦法是什麼?」的問題。 @opensas稱之爲「本地回購視爲遠程回購」,確實是一個裸目錄(就像一個真正的遠程存儲庫) – Jack

+1

我建議進行編輯:無論您是使用「git remot add ..」+「 git push「或者」git clone「在這裏表示:https:// stackoverflow。com/a/31590993/5446285(adelphus的答案) – Jack

+1

@Jack - 你能否詳細說明你發現的困惑?我很樂意修改,但希望保持相對簡潔的答案。 –

相關問題