2012-04-17 25 views
316

Tôi có kho lưu trữ git. Repo này có nhiều kho từ xa (tôi nghĩ). Làm thế nào tôi có thể nhận được một danh sách các kho lưu trữ từ xa thuộc về repo đã nói? Một số điều như git list --origins hoặc một cái gì đó như thế?Danh sách điều khiển từ xa cho kho lưu trữ git?

+1

Bạn có nghĩa là danh sách điều khiển từ xa không? –

Trả lời

412

Bạn có thể nhận danh sách bất kỳ url từ xa được định cấu hình nào bằng lệnh git remote -v.

này sẽ cung cấp cho bạn một cái gì đó như sau:

base /home/***/htdocs/base (fetch) 
base /home/***/htdocs/base (push) 
origin [email protected]:*** (fetch) 
origin [email protected]:*** (push) 
+7

'git remote -v' vì -v là cho chi tiết. 'git remote' cung cấp một danh sách đơn giản các điều khiển từ xa (cơ sở, xuất xứ trong trường hợp này). Tùy chọn -v bao gồm url cho cả hoạt động tìm nạp và đẩy của từng điều khiển từ xa. – dhj

+1

Tôi phải đồng ý với @AlexMills, nếu đó là git branch --list, nó phải là git remote --list – jimmyb

+0

'-v' cho" verbose "thực sự là tùy chọn phổ biến hơn. Nó cũng được hỗ trợ bởi 'git branch'. Sự khác biệt cơ bản là các tùy chọn ngắn và dài (đơn vs đôi dấu gạch ngang, về cơ bản) Điều đó nói rằng, hỗ trợ - danh sách với các tiểu mục 'từ xa' sẽ có ý nghĩa. Nếu bạn thực sự muốn nó, tôi muốn nói gửi một yêu cầu tính năng. – Randall

34

Nếu bạn chỉ cần tên của các kho từ xa (và không phải bất kỳ dữ liệu khác), một đơn giản git remote là đủ.

$ git remote 
iqandreas 
octopress 
origin 
7

Một cách đơn giản để xem chi nhánh từ xa là:

git branch -r 

Để xem chi nhánh địa phương:

git branch -l 
+12

Điều này dành cho các chi nhánh từ xa; người dùng đã yêu cầu từ xa _repos_. –

+1

'git ls-remote' sẽ hiển thị cho bạn tất cả các điều khiển từ xa có sẵn để tìm nạp từ máy chủ ngược dòng (https://git-scm.com/docs/git-ls-remote). Tôi tin rằng tất cả các câu trả lời trên trang này chỉ cho bạn biết cách liệt kê các điều khiển từ xa và theo dõi các chi nhánh mà bạn đã tìm nạp, đó là một Catch-22. Bạn không thể tìm nạp một điều khiển từ xa cho đến khi bạn biết cách tham chiếu đến nó trên máy chủ ngược dòng. –

25

FWIW, tôi có chính xác cùng một câu hỏi, nhưng tôi không thể tìm thấy trả lời ở đây. Đó có lẽ không phải di động, nhưng ít nhất là cho gitolite, tôi có thể chạy sau để có được những gì tôi muốn:

$ ssh [email protected] info 
hello akim, this is gitolite 2.3-1 (Debian) running on git 1.7.10.4 
the gitolite config gives you the following access: 
    R W android 
    R W bistro 
    R W checkpn 
... 
4

Những câu trả lời cho đến nay cho bạn biết làm thế nào để tìm thấy các chi nhánh hiện có:

git branch -r 

hoặc kho cho cùng một dự án [xem ghi chú bên dưới]:

git remote -v 

có một trường hợp khác. Bạn có thể muốn biết về các kho dự án khác được lưu trữ trên cùng một máy chủ.

Để khám phá thông tin đó, tôi sử dụng ssh hoặc putty để đăng nhập vào máy chủ và ls để tìm các thư mục chứa các kho lưu trữ khác. Ví dụ nếu tôi nhân bản một repo bằng cách gõ:

git clone ssh://git.mycompany.com/git/ABCProject 

và muốn biết những gì khác có sẵn, tôi đăng nhập vào git.mycompany.com qua ssh hoặc putty và gõ:

ls /git 

ls giả nói:

ABCProject DEFProject 

tôi có thể sử dụng lệnh

git clone ssh://git.mycompany.com/git/DEFProject 

để truy cập vào dự án khác.

LƯU Ý: Thường là git remote đơn giản chỉ cho tôi biết về origin - kho lưu trữ mà tôi đã sao chép dự án. git remote sẽ rất tiện lợi nếu bạn đang cộng tác với hai hoặc nhiều người làm việc trên cùng một dự án và truy cập kho lưu trữ của nhau trực tiếp thay vì chuyển mọi thứ thông qua nguồn gốc.

+0

Đây là câu trả lời hay hơn vì nó nói về các kho lưu trữ, thay vì các chi nhánh và giải thích cách liệt kê các kho lưu trữ không nằm trong kho lưu trữ hiện được kiểm tra –

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