Danh sách các điều khiển từ xa cho một kho lưu trữ Git?


542

Tôi có một kho Git. Kho lưu trữ này có nhiều kho lưu trữ từ xa (tôi nghĩ). Làm thế nào tôi có thể có được một danh sách các kho lưu trữ từ xa thuộc về kho lưu trữ nói trên?

Thích git list --remoteshay cái gì đó như thế?

Câu trả lời:


750

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

Điều 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  git@bitbucket.org:*** (fetch)
origin  git@bitbucket.org:*** (push)

18
git remote -vbởi vì -v là dành cho dài dòng. git remoteđưa ra một danh sách đơn giản các điều khiển từ xa (cơ sở, nguồn gốc 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 mỗi điều khiển từ xa.
dhj

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

1
-vcho "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 so với dài (về cơ bản so với dấu gạch đôi, về cơ bản) Điều đó nói rằng, danh sách hỗ trợ với remotetiểu ban sẽ có ý nghĩa. Nếu bạn thực sự muốn nó, tôi muốn gửi yêu cầu tính năng.
Randall

4
Điều này đòi hỏi một bản sao để có một bản sao. Khi cố gắng tìm ra, những gì clone để bắt đầu với, cái gì khác là cần thiết ...
Mikhail T.

60

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

$ git remote
iqandreas
octopress
origin

32

FWIW, tôi đã có chính xác câu hỏi tương tự, nhưng tôi không thể tìm thấy câu trả lời ở đây. Nó có thể không phải là di động, nhưng ít nhất là đối với gitolite, tôi có thể chạy những thứ sau đây để có được thứ tôi muốn:

$ ssh git@git.xxx.com 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
...

24

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

git branch -r

Hoặc kho lưu trữ 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 kho lưu trữ 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 thông qua SSH hoặc PuTTY và gõ:

ls /git

giả sử lsnói:

 ABCProject DEFProject

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

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

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

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


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

16

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

git branch -r

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

git branch -l

15
Đây là cho các chi nhánh từ xa; người dùng yêu cầu repos từ xa .
Owen Blacker

4
git ls-remotesẽ 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 ( 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 nhánh mà bạn đã tìm nạp, đó là 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ó trên máy chủ ngược dòng.
Reb.Cabin

0

Không có phương pháp nào trong số đó hoạt động theo cách người hỏi đang yêu cầu và điều mà tôi thường có nhu cầu là tốt. ví dụ:

$ git remote
fatal: Not a git repository (or any of the parent directories): .git
$ git remote user@bserver
fatal: Not a git repository (or any of the parent directories): .git
$ git remote user@server:/home/user
fatal: Not a git repository (or any of the parent directories): .git
$ git ls-remote
fatal: No remote configured to list refs from.
$ git ls-remote user@server:/home/user
fatal: '/home/user' does not appear to be a git repository
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

Toàn bộ vấn đề của việc này là bạn không có bất kỳ thông tin nào ngoại trừ người dùng và máy chủ từ xa và muốn tìm hiểu những gì bạn có quyền truy cập.

Phần lớn các câu trả lời cho rằng bạn đang truy vấn từ trong một tập làm việc git. Người hỏi đang cho rằng bạn không phải.

Như một ví dụ thực tế, giả sử đã có một kho lưu trữ foo.git trên máy chủ. Ai đó trong trí tuệ của họ quyết định họ cần thay đổi nó thành foo2.git. Sẽ thật tuyệt khi làm một danh sách thư mục git trên máy chủ. Và vâng, tôi thấy những vấn đề cho git. Nó vẫn sẽ là tốt đẹp để có mặc dù.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.