Repo Komut Referansı

Repo, birden çok depoda çalışmayı basitleştirerek Git'i tamamlar. Bkz Kaynak Kontrol Araçları Repo ve Git arasındaki ilişkinin bir açıklama için. Repo hakkında daha fazla ayrıntı için bkz Repo README .

Repo kullanımı aşağıdaki formu alır:

repo command options

İsteğe bağlı öğeler parantez [ ] içinde gösterilmiştir. Örneğin, birçok komutları almak project-list bağımsız değişken olarak. Sen belirtebilirsiniz project-list isim listesi veya projeler için yerel kaynak dizinlere yolların listesi gibi:

repo sync [project0 project1 ... projectn]
repo sync [/path/to/project0 ... /path/to/projectn]

Yardım

Bu sayfa yalnızca temel seçenekleri vurgular. Tüm ayrıntılar için komut satırı yardımına bakın. Repo kurulduğunda, aşağıdakileri çalıştırarak tüm komutların bir özetiyle başlayan en son belgeleri bulabilirsiniz:

repo help

Bunu bir Repo ağacında çalıştırarak herhangi bir komutla ilgili ayrıntılı bilgileri görebilirsiniz:

repo help command

Örneğin, aşağıdaki komut için seçeneklerin bir açıklama ve listeyi verir init geçerli dizinde Repo başlatır Repo argüman. (Bkz init detaylar için.)

repo help init

Veya yalnızca mevcut seçeneklerin listesini görmek için şunu çalıştırın:

repo command --help
: Örneğin
repo init --help

içinde

repo init -u url [options]

Repo'yu geçerli dizine yükler. Bu yaratır .repo/ Git Repo kaynak kodu için depoları ve standart Android bildirim dosyaları ile dizin.

Seçenekler:

  • -u : Bir manifesto depo almak için bir URL belirtin. Ortak tezahür de bulunur https://android.googlesource.com/platform/manifest .
  • -m : depo içinde bir bildirim dosyası seçin. Hiçbir tezahür adı seçilirse, varsayılan default.xml .
  • -b : bir düzeltme, belirli belirtin manifest-branch .

Not: Kalan tüm Repo komutları, geçerli çalışma dizini ya üst dizin olmalıdır .repo/ veya üst dizininin bir alt.

senkronizasyon

repo sync [project-list]

Yüklemeler Yeni değişiklikleri ve yerel ortamda güncellemeleri çalışan dosyaları, esasen gerçekleştirerek git fetch tüm Git depoları arasında. Eğer çalıştırırsanız repo sync değişkenler olmadan, tüm projeler için dosyaları eşitler.

Eğer çalıştırdığınızda repo sync , bu olur:

  • Proje senkronize olmamıştı, o zaman repo sync eşdeğerdir git clone . Uzak depodaki tüm dallar yerel proje dizinine kopyalanır.

  • Proje daha önce senkronize edilmişse, o zaman repo sync eşdeğerdir:

    git remote update
    git rebase origin/branch
    

    nerede branch yerel proje dizininde şu anda denetleniyor aşımı dalıdır. Yerel şube uzak havuzdaki bir şubeyi izlemiyorsa, proje için senkronizasyon gerçekleşmez.

  • Git birleştirme çatışmalarda operasyon sonuçlarını rebase ise (örneğin, normal Git komutlarını kullanmak git rebase --continue anlaşmazlıkları çözmek için).

Başarılı bir çalışma sonrasında repo sync , belirtilen projelerde kod güncel olduğundan ve uzak depoda kodu ile senkronize edildi.

İşte önemli seçenekler. Bkz repo help sync daha:

  • -c : sunucudan yalnızca geçerli tezahür dalı getir.

  • -d : Anahtar belirtilen projeler tezahür revizyon destekliyor. Bu, proje şu anda bir konu dalındaysa, ancak bildirim revizyonunun geçici olarak gerekli olması durumunda yararlıdır.

  • -f : Bir proje senkronizasyonu başarısız olsa bile diğer projeleri senkronize devam edin.

  • -j threadcount : Bölünmüş hızlı tamamlanması için iş parçacıkları arasında eşitleme. Makinenizi bunaltmadığınızdan emin olun - diğer görevler için ayrılmış bir miktar CPU bırakın. Mevcut CPU, ilk çalıştırma sayısını görmek için: nproc --all

  • -q : Durum mesajlarını bastırarak sessizce çalıştırın.

  • -s : Sync tarafından belirtilen bilinen iyi bir yapı için manifest-server akım manifest'te elemanı.

yüklemek

repo upload [project-list]

Belirtilen projeler için Repo, yerel şubeleri son Repo senkronizasyonu sırasında güncellenen uzak şubelerle karşılaştırır. Repo, inceleme için yüklenmemiş bir veya daha fazla şube seçmenizi ister.

Seçilen dallardaki tüm taahhütler daha sonra bir HTTPS bağlantısı üzerinden Gerrit'e iletilir. Yükleme yetkilendirmesini etkinleştirmek için bir HTTPS parolası yapılandırmanız gerekir. Ziyaret Şifre Jeneratör HTTPS üzerinden kullanmak için yeni bir kullanıcı adı / şifre çiftini oluşturmak için.

Gerrit, nesne verilerini sunucusu üzerinden aldığında, gözden geçirenlerin belirli bir taahhüt hakkında yorum yapabilmesi için her bir işlemi bir değişikliğe dönüştürür. Kullanımı kesinleştirme, tek içine birkaç kontrol noktası kaydedilmesini birleştirmek için git rebase -i yüklemeyi çalıştırmadan önce.

Eğer çalıştırırsanız repo upload argümanlar olmadan, upload değişikliklerin projelerin hepsi arar.

Videolar yüklendikten sonra düzenleme değişiklikleri için, böyle bir aracı kullanmak git rebase -i veya git commit --amend yerel kaydedilmesini güncellemek için. Düzenlemeleriniz tamamlandıktan sonra:

  • Güncellenen dalın şu anda kullanıma alınmış dal olduğunu doğrulayın.
  • Serideki her taahhüt için Gerrit değişiklik kimliğini parantez içine girin:
    # Replacing from branch foo
    [ 3021 ] 35f2596c Refactor part of GetUploadableBranches to lookup one specific...
    [ 2829 ] ec18b4ba Update proto client to support patch set replacments
    # Insert change numbers in the brackets to add a new patch set.
    # To create a new change record, leave the brackets empty.
    

Yükleme tamamlandıktan sonra, değişikliklerin ek bir yama seti olur.

Yalnızca şu anda Git şube teslim yüklemek istiyorsanız, bayrak kullanmak --current-branch (ya --cbr kısaca).

fark

repo diff [project-list]

Gösteriler işlemek ve çalışma ağaç kullanmak arasındaki olağanüstü değişiklikler git diff .

indirmek

repo download target change

Belirtilen değişikliği gözden geçirme sisteminden indirir ve projenizin yerel çalışma dizininde kullanılabilir hale getirir.

Örneğin, indirmek için değişiklik 23823 senin platformu / yapı dizine:

repo download platform/build 23823

Koşu repo sync kaldırır herhangi kaydedilmesini Alınan ile repo download . Yoksa kullanarak uzak şube kontrol edebilirsiniz git checkout m/master .

Not: Tüm dünyada tüm sunuculara çoğaltma gecikmeler vardır, bu yüzden bir değişiklik web üzerinde görünür olduğunda arasında küçük yansıtma gecikmesi olmaz Gerrit ve ne zaman repo download tüm kullanıcılar için değişiklik bulabilirsiniz.

hepsi için

repo forall [project-list] -c command

Her projede verilen kabuk komutunu yürütür. Aşağıdaki ek ortam değişkenleri hazır repo forall :

  • REPO_PROJECT projesinin benzersiz adı ayarlanır.

  • REPO_PATH istemci köküne yolu görecelidir.

  • REPO_REMOTE Manifest'ten uzak sistemin adıdır.

  • REPO_LREV yerel izleme şubesine çevrilmiş manifest'ten revizyon, adıdır. Bildirim revizyonunu yerel olarak yürütülen bir Git komutuna geçirmeniz gerekiyorsa bunu kullanın.

  • REPO_RREV apaçık yazılmış aynen manifest'ten revizyon adıdır.

Seçenekler:

  • -c : Komut ve argümanlar yürütmek. Komut yoluyla değerlendirilir /bin/sh ve peşine herhangi argümanlar kabuk konumsal parametreler olarak geçirilir.

  • -p : Belirtilen komutun çıktısını önce göster proje başlıkları. Bu, boruları komutun stdin, stdout ve sterr akışlarına bağlayarak ve tüm çıktıları tek bir çağrı cihazı oturumunda görüntülenen sürekli bir akışa aktararak elde edilir.

  • -v : göster mesajları komut stderr'e yazar.

kuru erik

repo prune [project-list]

Halihazırda birleştirilmiş konuları erir (siler).

Başlat

repo start
branch-name [project-list]

Bildirimde belirtilen revizyondan başlayarak geliştirme için yeni bir dal başlatır.

BRANCH_NAME argümanı Eğer projelerine yapmaya çalışıyoruz değişimin kısa bir açıklama sağlar. Eğer bilmiyorsanız, adı kullanmayı düşünün default .

project-list projeler bu konu branşında katılan argüman belirtir.

Not: (.) Bir dönem geçerli çalışma dizini proje için kısaltmadır.

durum

repo status [project-list]

Çalışma ağacını, belirtilen her projede hazırlama alanı (indeks) ve bu daldaki en son taahhütle (HEAD) karşılaştırır. Bu üç durum arasında fark olan her dosya için bir özet satırı görüntüler.

Çalıştırmak sadece şimdiki şube durumunu görmek için repo status . . Durum bilgileri projeye göre listelenir. Projedeki her dosya için iki harfli bir kod kullanılır.

İlk sütunda, bir büyük harf, hazırlama alanının son taahhüt edilen durumdan ne kadar farklı olduğunu gösterir.

Mektup Anlam Açıklama
- Değişiklik yok HEAD ve indekste aynı
A Katma HEAD'de değil, indekste
m Değiştirilmiş HEAD'de, dizinde değiştirildi
NS silindi HEAD'de, indekste değil
r yeniden adlandırıldı HEAD'de değil, dizinde yol değişti
C kopyalandı HEAD'de değil, dizinde başka birinden kopyalandı
T Mod değişti HEAD ve dizinde aynı içerik, mod değişti
sen Birleştirilmemiş HEAD ve dizin arasındaki çakışma; çözünürlük gerekli

İkinci sütunda, küçük harf, çalışma dizininin dizinden ne kadar farklı olduğunu gösterir.

Mektup Anlam Açıklama
- Yeni/bilinmeyen Dizinde değil, çalışma ağacında
m Değiştirilmiş Dizinde, çalışma ağacında, değiştirildi
NS silindi Dizinde, çalışma ağacında değil

Depo hatalarını işleme

git reflog

repo start branch-name

git merge commit-id

repo upload .

Hata repo: error: no branches ready for upload komut görüntülenen repo start oturumun başında çalıştırılmadı. Kurtarmak için taahhüt kimliğini kontrol edebilir, yeni bir şube başlatabilir ve ardından birleştirebilirsiniz.