Depo komut referansı

Depo, birden fazla depoda çalışmayı basitleştirerek Git'i tamamlar. Örneğin, hakkında daha fazla bilgi edinmek için bkz. Kaynak kontrol araçları. Daha fazla hakkında ayrıntılı bilgi için Kod deposu BENİOKU

Depo kullanımı şu 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 belirtebilirsiniz öğesi için adların listesi veya yerel kaynak dizinlere giden yolların listesi olarak projeler:

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 bir açıklama ve seçenekler listesi sağlar init komutu için:

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

Örnek:

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: Depoda bir manifest dosyası seçin. Manifest adı yoksa seçili, varsayılan değer default.xml.

  • -b: Bir düzeltme, yani belirli bir manifest-branch belirtin.

ziyaret edin.

senkronizasyon

repo sync [project-list]

Yeni değişiklikleri indirir ve yerel ortamınızdaki çalışma dosyaları günceller. temel olarak tüm Git depolarında git fetch tamamlamaktadır. Şu anda repo sync bağımsız değişkeni olmadan, dosyaları tüm projeler için senkronize eder.

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

  • Proje daha önce hiç senkronize edilmediyse repo sync, şuna eşdeğerdir: git clone; uzak depodaki tüm dallar yerel depoya kopyalanır proje dizinini oluşturur.

  • 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 şube, uzaktaki bir dalı izlemiyorsa bir senkronizasyon işlemi yapmayı seçerseniz proje için herhangi bir senkronizasyon gerçekleşmez.

repo sync başarılı bir şekilde çalıştırıldıktan sonra, belirtilen projelerdeki kod güncel ve uzak depodaki kodla senkronize edildi.

Anahtar seçenekler:

  • -c: Sunucudan yalnızca geçerli manifest dalını getirin.
  • -d: Belirtilen projeleri manifest düzeltmesine geri döndürür. 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 bunaltmadığınızdan emin olun ve CPU'nun bir kısmını bırakın farklı görevler için ayrılabilir. Kullanılabilir CPU sayısını görmek için önce nproc --all
  • -q: Durum mesajlarını gizleyerek sessizce çalışır.
  • -s: manifest-server öğesi tarafından belirtilen, bilinen iyi bir derlemeyle senkronize edin ekleyin.

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 kullanmak üzere yeni bir kullanıcı adı/şifre çifti oluşturmak için şurayı ziyaret edin: Şifre oluşturma aracı.

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. Birkaç kontrol noktası kaydını tek bir kayıtta birleştirmek için git rebase -i kullanın .

repo upload öğesini bağımsız değişken olmadan çalıştırırsanız şu sorgu için tüm projelerde arama yapılır: değişiklik yapabilirsiniz.

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üzenlemelerinizi yaptıktan sonra tamamlandı:

  • 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 kaydetme için parantez içine Gerrit değişiklik kimliğini 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 uygulanır.

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

fark

repo diff [project-list]

Kaydetme işlemi ve çalışma ağacı arasındaki önemli değişiklikleri göstermek için git diff

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, 23823'ü platform/build dizini:

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. Ya da git checkout m/main kullanarak uzak şubeyi kontrol edebilir.

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 ayarlandı.
  • REPO_PATH, istemcinin köküne bağlı yoldur.
  • REPO_REMOTE, manifest'teki uzak sistemin adıdır.
  • REPO_LREV, manifestteki düzeltmenin adıdır. Bu ad, yerel izleme şubesinden yararlanabilirsiniz. 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 gönderin.

Seçenekler:

  • -c: Yürütülecek komut ve bağımsız değişkenler. Komut, Kabuk konumu olarak iletildikten sonraki /bin/sh ve tüm bağımsız değişkenler parametreleridir.
  • -p: Belirtilen komuttan önce proje başlıklarını gösterir. 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.

budama

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, yaptığınız değişikliğin kısa bir açıklamasını sağlar ne kadar önemli olduğunu görmeye başladım. Bilmiyorsanız şu adı kullanabilirsiniz: default

project-list bağımsız değişkeni, bu konuya hangi projelerin katıldığını belirtir görebilirsiniz.

status

repo status [project-list]

Çalışma ağacını hazırlık alanı (dizin) ve en son kaydetmeyle karşılaştırır her projede bu dalda (HEAD) kullanabilirsiniz. Ş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 proje bazında listelenen bilgilerdir. Projedeki her bir dosya için iki harfli emin olun.

İlk sütundaki büyük bir harf, hazırlık alanının nasıl farklı olduğunu gösterir geri bildirim alabilirsiniz.

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 öğesinde değil, dizinde yol değişti
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ştirildi
U Birleştirilmemiş HEAD ve dizin arasında çakışma var; çözünürlük gerekli

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

Mektup Anlamı Açıklama
- Yeni/bilinmeyen Dizinde değil, iş ağacında
m Değiştirilme tarihi Dizinde, iş ağacında, değiştirilmiş
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ı, repo start oturumun başında çalıştırılmadı. Kurtarmak için şunları kontrol edebilirsiniz: yeni bir dal başlatıp birleştirin.