2012-05-15 32 views
110

Tôi đang cố gắng để thực hiện một hành động repo địa phương như một điều khiển từ xa với tên bak thêm repo cục bộ trên máy tính của tôi, sử dụng như sau:Làm thế nào để thêm một repo địa phương và đối xử với nó như một repo từ xa

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

mang đến cho lỗi này:

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

tôi đang cố gắng để đồng bộ hóa hai Repos địa phương, với một cấu hình như một điều khiển từ xa có tên bak cho người khác, và sau đó phát hành git pull bak.

Cách tốt nhất để làm điều đó là gì?


Edit:

Xin lỗi, ngớ ngẩn tôi, tôi vừa mới nhận ra tiện ích từ xa nên là:

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

tên của điều khiển từ xa đi trước địa chỉ.

Trả lời

147

Bạn có lập luận của mình vào lệnh remote add đảo ngược:

git remote add <NAME> <PATH> 

Vì vậy:

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

Xem git remote --help để biết thêm thông tin.

+3

Sản phẩm '.git' vào cuối đặc biệt cần thiết mặc dù? –

+2

Nó chỉ là một con đường ... Git không quan tâm những gì nó được đặt tên. – larsks

+1

@ErikAigner theo truyền thống, repos trần sẽ kết thúc bằng hậu tố ".git". Mặc dù thường không phải là thư mục riêng của nó, mà là: "/path/to/projectname.git". - Khác hơn là nó làm cho sự khác biệt nhỏ. – Atli

5

Dường như định dạng của bạn là không chính xác:

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

Nếu mục tiêu của bạn là để giữ một bản sao cục bộ của kho lưu trữ để sao lưu dễ dàng hoặc cho bám vào một ổ đĩa ngoài hoặc chia sẻ qua lưu trữ đám mây (Dropbox, v.v.) bạn có thể muốn sử dụng bare repository. Điều này cho phép bạn tạo một bản sao của kho lưu trữ mà không có thư mục làm việc, được tối ưu hóa để chia sẻ.

Ví dụ:

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

Tương tự, bạn có thể sao chép, nếu như đây là một repo từ xa:

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

Đây phải là câu trả lời được chấp nhận, bởi vì nó hoàn toàn phù hợp với câu hỏi "Cách tốt nhất cho nó là gì?". "repo địa phương được coi là repo từ xa", như @opensas gọi nó, thực sự là thư mục trống (giống như một kho lưu trữ từ xa thực) – Jack

+1

Tôi đề xuất chỉnh sửa: Cho dù bạn nên sử dụng "git remot add .." + " git push "hoặc" git clone "được chỉ ra ở đây: https: // stackoverflow.com/a/31590993/5446285 (câu trả lời của adelphus) – Jack

+1

@Jack - bạn có thể giải thích về những gì bạn thấy khó hiểu không? Tôi rất vui được sửa đổi nhưng muốn giữ câu trả lời tương đối gọn gàng. –

Các vấn đề liên quan