Git deposu için uzaktan kumandaların listesi?


542

Git depom var. Bu depoda birden fazla uzak havuz var (sanırım). Söz konusu depoya ait uzak depoların listesini nasıl edinebilirim?

Gibi git list --remotesya da böyle bir şey?

Yanıtlar:


750

Komutu ile yapılandırılmış uzak URL'lerin bir listesini alabilirsiniz git remote -v.

Bu size aşağıdaki gibi bir şey verecektir:

base    /home/***/htdocs/base (fetch)
base    /home/***/htdocs/base (push)
origin  git@bitbucket.org:*** (fetch)
origin  git@bitbucket.org:*** (push)

18
git remote -vçünkü -v ayrıntılı içindir. git remotebasit bir uzaktan kumanda listesi verir (taban, bu durumda köken). -V seçeneği, her uzaktan kumandanın getirme ve itme işlemleri için URL'yi içerir.
dhj

2
@AlexMills ile anlaşmak zorundayım, eğer git şubesi
liste ise,

1
-v"ayrıntılı" aslında daha yaygın bir seçenektir. Ayrıca tarafından desteklenir git branch. Temel fark kısa ve uzun seçeneklerin (tek ve çift çizgi, aslında) olduğunu söyledi remote. Gerçekten isterseniz, bir özellik isteği gönderin derim.
Randall

4
Bu zaten bir klonun olmasını gerektirir. Anlamaya çalışırken, başlamak için neyi klonlayacağınız , başka bir şeye ihtiyaç vardır ...
Mikhail T.

60

Yalnızca uzak depoların adlarına ihtiyacınız varsa (ve diğer verilerin herhangi birine değil), basit git remotebir yeterlidir.

$ git remote
iqandreas
octopress
origin

32

FWIW, tamamen aynı sorum vardı, ama cevabı burada bulamadım. Muhtemelen taşınabilir değil, ama en azından gitolit için, istediğimi elde etmek için aşağıdakileri çalıştırabilirim:

$ 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

Şimdiye kadar verilen cevaplar size mevcut şubeleri nasıl bulacağınızı gösteriyor:

git branch -r

Veya aynı proje için depolar [aşağıdaki nota bakınız] :

git remote -v

Başka bir dava daha var. Aynı sunucuda barındırılan diğer proje havuzları hakkında bilgi edinmek isteyebilirsiniz.

Bu bilgileri keşfetmek için, ana bilgisayara oturum açmak ve diğer depoları içeren dizinleri bulmak için SSH veya PuTTY kullanıyorum ls. Örneğin, bir depoyu yazarak klonladıysam:

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

ve başka ne var bilmek istiyorum, SSH veya PuTTY üzerinden git.mycompany.com giriş ve yazın:

ls /git

varsayarsak ls:

 ABCProject DEFProject

Komutunu kullanabilirim

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

diğer projeye erişim sağlamak.

NOT: Genellikle git remotebasitçe bana söyler origin- projeyi klonladığım depo. git remoteaynı projede çalışan ve her birinin başlangıç ​​noktasına geçmek yerine doğrudan birbirlerinin depolarına erişen iki veya daha fazla kişiyle işbirliği yapıyorsanız kullanışlı olurdu.


2
Bu daha iyi bir yanıttır, çünkü dallardan ziyade depolardan bahseder ve şu anda teslim alınmış depoda olmayan depoların nasıl listelendiğini açıklar
Edward Ross

16

Uzak dalları görmenin basit bir yolu:

git branch -r

Yerel şubeleri görmek için:

git branch -l

15
Bu uzak dallar içindir; kullanıcı uzak depoları istedi .
Owen Blacker

4
git ls-remoteakış yukarı sunucudan getirilebilecek tüm uzaktan kumandaları göstermelidir ( git-scm.com/docs/git-ls-remote ). Bu sayfadaki tüm yanıtların size yalnızca önceden getirdiğiniz uzaktan kumandaları ve izleme dallarını nasıl listeleyeceğinizi, yani bir Catch-22 olduğunu söyleyeceğine inanıyorum. Akış yukarı sunucuda nasıl başvuracağını bilinceye kadar uzaktan kumandayı getiremezsiniz.
Reb.Cabin

0

Bu yöntemlerin hiçbiri, sorgulayıcının istediği şekilde işe yaramıyor. Örneğin:

$ 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.

Bunu yapmanın asıl amacı uzak kullanıcı ve sunucu dışında herhangi bir bilginizin olmaması ve neye erişebildiğinizi öğrenmek istemenizdir.

Cevapların çoğu git git çalışma kümesinden sorguladığınızı varsayar. Soru soran olmadığınızı varsayıyor.

Pratik bir örnek olarak, sunucuda bir foo.git deposu olduğunu varsayın. Bilgeliklerinde birisi onu foo2.git olarak değiştirmeleri gerektiğine karar verir. Sunucuda bir git dizininin bir listesini yapmak gerçekten iyi olurdu. Ve evet, git için problemleri görüyorum. Yine de olması güzel olurdu.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.