Depo komut referansı

Repo, birden fazla depodaki çalışmaları basitleştirerek Git'i tamamlar. Repo ile Git arasındaki ilişkinin açıklanması için Kaynak denetimi araçları başlıklı makaleyi inceleyin. Depo hakkında daha fazla bilgi için Repo README dosyasını inceleyin.

Depo kullanımı aşağıdaki biçimdedir:

repo command options

İsteğe bağlı öğeler köşeli parantez [] içinde gösterilmiştir. Örneğin, birçok komutta project-list adresini bağımsız değişken olarak kullanın. project-list değerini, projelerin adlarının veya yerel kaynak dizinlerinin yollarının listesi olarak belirtebilirsiniz:

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

yardım

repo help

repo komutuyla ilgili yardım sağlar. Web sitenizdeki bir seçenek olarak bir komut belirten özel Repo komutu:

repo help command

Örneğin, aşağıdaki komut init komutunun açıklamasını ve seçenek listesini döndürür:

repo help init

Alternatif olarak, yalnızca bir komutla ilgili kullanılabilir seçeneklerin listesini görmek için şu komutu çalıştırın:

repo command --help

Örneğin:

repo init --help

başlat

repo init -u url [options]

Depoyu geçerli dizine yükler. Bu komut bir .repo/ oluşturur için Git kod depolarının bulunduğu dizin ve standart Android manifest dosyaları için geçerlidir.

Seçenekler:

  • -u: Manifest deposunun alınacağı URL'yi belirtin. Yaygın manifesto şu adreste bulunur: https://android.googlesource.com/platform/manifest.

  • -m: Depodan bir manifest dosyası seçin. Manifest adı yoksa seçili, varsayılan değer default.xml.

  • -b: Bir düzeltmeyi (yani belirli bir manifest-branch) belirtin.

senkronizasyon

repo sync [project-list]

Yeni değişiklikleri indirir ve yerel ortamınızdaki çalışan dosyaları güncelleyerek tüm Git depolarında git fetch işlemini gerçekleştirir. repo sync bağımsız değişkeni olmadan çalıştırırsanız tüm projelerin dosyalarını senkronize eder.

repo sync çalıştırıldığında şunlar olur:

  • Proje hiç senkronize edilmediyse repo sync, git clone ile aynıdır; uzak depoda bulunan tüm dallar yerel proje dizinine kopyalanır.

  • Proje daha önce senkronize edilmişse repo sync eşdeğerdir alıcı:

    git remote update
    git rebase origin/branch
    

    Burada branch, yerel düzeydeki mevcut ödeme dalıdır proje dizinini oluşturur. Yerel dal, uzak depoda bir dalı takip etmiyorsa proje için senkronizasyon gerçekleşmez.

repo sync başarıyla çalıştırıldıktan sonra, belirtilen projelerdeki kod günceldir ve uzak depodaki kodla senkronize edilir.

Anahtar seçenekler:

  • -c: Sunucudan yalnızca geçerli manifest dalını getirin.
  • -d: Belirtilen projeleri manifest düzeltmesine geri döndürün. Bu seçenek proje bir konu dalındaysa, ancak manifesto revizyonu geçici olarak gereklidir.
  • -f: Bir proje senkronize edilemediğinde bile diğer projeleri senkronize etmeye devam edin.
  • threadcount: Senkronizasyonu ileti dizileri arasında paylaştırın. daha hızlı tamamlamayı sağlar. Makinenizi aşırı yüklemediğinizden emin olun. Diğer görevler için biraz CPU ayırın. Kullanılabilir CPU sayısını görmek için önce nproc --all
  • -q: Durum mesajlarını bastırarak sessizce çalıştırın.
  • -s: Geçerli manifest dosyasında manifest-server öğesi tarafından belirtildiği gibi, bilinen iyi bir derlemeyle senkronize edilir.

Diğer seçenekler için repo help sync komutunu çalıştırın.

yükle

repo upload [project-list]

Değişiklikleri inceleme sunucusuna yükler. Repo, belirtilen projeler için son depo senkronizasyonu sırasında güncellenen uzak dallara yerel dallar. Depo, henüz açılmamış olan dallardan bir veya daha fazlasını seçmenizi yüklenmek üzere yüklendi.

Seçilen dallardaki tüm taahhütler daha sonra HTTPS bağlantısı. Yüklemeyi etkinleştirmek için bir HTTPS şifresi yapılandırmanız gerekir yetkilendirme. HTTPS üzerinden kullanılacak yeni bir kullanıcı adı/şifre çifti oluşturmak için Şifre oluşturucu'yu ziyaret edin.

Gerrit, nesne verilerini sunucusu üzerinden aldığında her bir İncelemecilerin belirli bir kayıt hakkında yorum yapabilmesi için bir değişikliği taahhüt etme. Birden fazla kontrol noktası kaydını tek bir kayda birleştirmek için yükleme işlemini başlatmadan önce git rebase -i

repo upload bağımsız değişkeni olmadan çalıştırırsanız tüm projelerde yüklenecek değişiklikler aranır.

Değişiklikleri yüklendikten sonra düzenlemek için git rebase -i veya Yerel taahhütlerinizi güncellemek için git commit --amend. Düzenlemeleriniz tamamlandıktan sonra:

  • Güncellenen dalın, çıkış yapılan geçerli dal olduğunu doğrulayın.
  • Değişiklik eşleştirme düzenleyicisini açmak için repo upload --replace PROJECT öğesini kullanın.
  • Serideki her bir 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 replacements
    # Insert change numbers in the brackets to add a new patch set.
    # To create a new change record, leave the brackets empty.
    

Yükleme işlemi tamamlandıktan sonra değişiklikler için ek bir yama grubu oluşturulur.

Yalnızca şu anda kontrol edilen Git dalını yüklemek istiyorsanız --current-branch (veya kısaca --cbr) işaretini kullanın.

fark

repo diff [project-list]

git diff kullanarak, kaydetme ile çalışma ağacı arasındaki önemli değişiklikleri gösterir.

indir

repo download target change

Belirtilen değişikliği inceleme sisteminden indirir ve şurada kullanılabilir hale getirir: yerel çalışma dizinine ekleyin.

Örneğin, indirmek için 23823 değerini platform/build dizininize değiştirin:

repo download platform/build 23823

repo sync çalıştırıldığında repo download ile alınan tüm kayıtlar kaldırılır. Dilerseniz git checkout m/main kullanarak uzaktaki dalı da kontrol edebilirsiniz.

herkes 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 repo forall tarafından kullanılabilir:

  • REPO_PROJECT, projenin benzersiz adına ayarlanır.
  • REPO_PATH, istemcinin köküne göre göreli yoldur.
  • REPO_REMOTE, manifest'teki uzak sistemin adıdır.
  • REPO_LREV, yerel bir izleme şubesine çevrilen manifest'teki düzeltmenin adıdır. Manifest dosyasını aktarmanız gerekiyorsa bu değişkeni kullanın komut dosyasını yerel olarak yürütülen Git komutuna dönüştürür.
  • REPO_RREV, tam olarak yazıldığı şekliyle manifestteki düzeltmenin adıdır dosyası olarak ekleyebilirsiniz.

Seçenekler:

  • -c: Yürütülecek komut ve bağımsız değişkenler. Komut, /bin/sh aracılığıyla değerlendirilir ve sonraki tüm bağımsız değişkenler kabuk konumsal parametreleri olarak iletilir.
  • -p: Belirtilen komutun çıktısından önce proje başlıklarını gösterin. Bu boruların komutun stdin, stdout ve sterr akışlarına bağlanmasıyla elde edilir ve Tüm çıktıları, tek sayfalık bir belgede görüntülenen sürekli bir akışta birleştirme kabul edilir.
  • -v: Komutun stderr'e yazdığı mesajları gösterir.

kuru erik

repo prune [project-list]

Zaten birleştirilmiş olan konuları ayıklar (siler).

start

repo start branch-name [project-list]

Belirtilen düzeltmeden başlayarak geliştirme için yeni bir dalı başlatır. manifest'ini kullanabilirsiniz.

BRANCH_NAME bağımsız değişkeni, projelerde yapmaya çalıştığınız değişikliğin kısa bir açıklamasını sağlar. Bilmiyorsanız default adını kullanabilirsiniz.

project-list bağımsız değişkeni, bu konu dalına hangi projelerin katıldığını belirtir.

status

repo status [project-list]

Çalışma ağacını, belirtilen her projedeki hazırlık alanı (dizin) ve bu daldaki en son taahhütle (HEAD) karşılaştırır. Şunun için özet satırı görüntüler: her dosyada bu üç durum arasında fark bulunur.

Yalnızca mevcut dalın durumunu görmek için repo status . komutunu çalıştırın. Durum bilgileri projeye göre listelenir. Projedeki her dosya için iki harfli bir kod kullanılır.

İlk sütunda, büyük harf, hazırlık alanının son kaydedilen durumdan nasıl farklı olduğunu gösterir.

Mektup Anlamı Açıklama
- Değiştirmedi HEAD ve dizinde aynı
A Eklendi HEAD klasöründe, dizinde değil
M Değiştirilme tarihi HEAD öğesinde, dizinde değiştirildi
D Silindi HEAD öğesinde, dizinde değil
K Yeniden adlandırıldı HEAD'da değil, dizinde yol değiştirildi
C Kopyalandı HEAD klasöründe değil, dizindeki başka bir klasörden kopyalandı
T Mod değişti HEAD ve dizinde aynı içerik, mod değişti
U Birleştirilmemiş HEAD ile dizin arasında çakışma; çözüm gerekli

İkinci sütundaki küçük harf, çalışma dizininin dizine ekler.

Mektup Anlamı Açıklama
- Yeni/bilinmeyen Dizine eklenmemiş, çalışma ağacında
m Değiştirilme tarihi Dizinde, çalışma ağacında, değiştirildi
g Silindi Dizinde, iş ağacında değil

Depo hatalarını işleme

git commit -a # Commit local changes first so they aren't lost.
repo start branch-name # Start the branch
git reset --hard HEAD@{1} # And reset the branch so that it matches the commit before repo start
repo upload .

repo: error: no branches ready for upload hatası, komut repo start oturumun başında çalıştırılmadı. Kurtarmak için, kaydetme kimliğini kontrol edebilir, yeni bir dal başlatabilir ve ardından bu dalı birleştirebilirsiniz.