Depo, birden çok havuzda çalışmayı basitleştirerek Git'i tamamlar. Repo ve Git arasındaki ilişkinin açıklaması için Kaynak Kontrol Araçlarına bakın. Repo hakkında daha fazla bilgi için Repo README'ye bakınız.
Repo kullanımı aşağıdaki formu alır:
repo command options
İsteğe bağlı öğeler köşeli parantez [] içinde gösterilmiştir. Örneğin, birçok komut project-list argüman olarak alır. project-list , projeler için bir ad listesi veya yerel kaynak dizinlere giden yolların bir project-list olarak belirtebilirsiniz:
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ğıdaki komutu çalıştırarak tüm komutların bir özetiyle başlayarak 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 Repo'nun
init argümanı için bir açıklama ve seçenekler listesi verir, bu da Repo'yu geçerli dizinde başlatır. (Ayrıntılar için init'e bakın.)
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 mevcut dizine kurar. Bu, Repo kaynak kodu ve standart Android bildirim dosyaları için Git depolarıyla bir
.repo/ dizini oluşturur.
Seçenekler:
-
-u: Manifest havuzunun alınacağı URL'yi belirtin. Ortak bildiri
https://android.googlesource.com/platform/manifest.
-
-m: Depo içinde bir bildirim dosyası seçin. Hiçbir bildirim adı seçilmezse, varsayılan değer
default.xml.
-
-b: Bir revizyon, yani belirli bir manifest-branch belirtin.
Not: Kalan tüm Repo komutları için, geçerli çalışma dizini ya
.repo/ üst dizini ya da ana dizinin bir alt dizini olmalıdır.
eşitleme
repo sync [project-list]
Yeni değişiklikleri indirir ve yerel ortamınızdaki çalışma dosyalarını günceller, esasen tüm Git depolarında
git fetch gerçekleştirir.
repo sync bağımsız değişkenler olmadan çalıştırırsanız, tüm projeler için dosyaları senkronize eder.
repo sync çalıştırdığınızda, şu olur:
Proje hiç senkronize edilmemişse,
repo sync
git cloneile eşdeğerdir. Uzak depodaki tüm şubeler yerel proje dizinine kopyalanır.
Proje daha önce senkronize edilmişse,
repo syncşuna eşdeğerdir:
git remote update git rebase origin/branch
Burada
branch, yerel proje dizininde halihazırda teslim alınmış daldır. Yerel şube uzak depodaki bir dalı izlemiyorsa, proje için senkronizasyon gerçekleşmez.
Git yeniden tabanlama işlemi birleştirme çakışmalarıyla sonuçlanırsa, çakışmaları çözmek için normal Git komutlarını (örneğin,
git rebase --continue) kullanın.
Başarılı bir
repo sync çalışmasının ardından, belirtilen projelerdeki kod günceldir ve uzak depodaki kodla senkronize edilir.
İşte temel seçenekler. Daha fazlası için
repo help sync bakın:
-c: Sunucudan yalnızca geçerli bildirim dalını getirir.
-d: Belirtilen projeleri manifest revizyonuna geri döndür. Bu, proje şu anda bir konu dalındaysa yararlıdır, ancak bildirim revizyonu geçici olarak gereklidir.
-f: Bir proje eşitlenemese bile diğer projeleri eşitlemeye devam edin.
-j threadcount: Daha hızlı tamamlanma için senkronizasyonu iş parçacıkları arasında bölün. Bazı CPU'ları diğer görevler için ayırarak makinenizi bunaltmamaya dikkat edin. Kullanılabilir CPU sayısını görmek için önce şunu çalıştırın:
nproc --all
-q: Durum mesajlarını bastırarak sessizce çalıştırın.
-s: Geçerli bildiride manifest-server öğesi tarafından belirtildiği gibi bilinen iyi bir yapıya eşitleyin.
yükle
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, incelenmek üzere yüklenmemiş bir veya daha fazla şubeyi seçmenizi ister.
Seçilen şubelerdeki tüm taahhütler daha sonra bir HTTPS bağlantısı üzerinden Gerrit'e iletilir. Yükleme yetkilendirmesini etkinleştirmek için bir HTTPS şifresi yapılandırmanız gerekir. HTTPS üzerinden kullanmak üzere yeni bir kullanıcı adı / şifre çifti oluşturmak için Şifre Oluşturucu'yu ziyaret edin.
Gerrit, nesne verilerini sunucusu üzerinden aldığında, gözden geçirenlerin belirli bir kaydetme hakkında yorum yapabilmesi için her kaydetmeyi bir değişikliğe dönüştürür. Birkaç denetim noktası kaydını tek bir işlemde birleştirmek için, yüklemeyi çalıştırmadan önce
git rebase -i kullanın.
repo upload bağımsız değişken olmadan çalıştırırsanız, yüklenecek değişiklikleri tüm projeleri arar.
Yüklendikten sonra değişiklikleri düzenlemek için
git rebase -i veya
git commit --amend gibi bir araç kullanarak yerel taahhütlerinizi güncelleyin. Düzenlemeleriniz tamamlandıktan sonra:
- Güncellenen şubenin şu anda kullanıma alınmış şube olduğunu doğrulayın.
- Serideki her kayıt 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 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 halihazırda kullanıma alınmış Git dalını yüklemek istiyorsanız,
--current-branch (veya
--cbr ) bayrağını kullanın.
fark
repo diff [project-list]
git diff kullanarak commit ve çalışma ağacı arasındaki olağanüstü değişiklikleri gösterir.
indir
repo download target change
Belirtilen değişikliği inceleme sisteminden indirir ve projenizin yerel çalışma dizininde kullanılabilir hale getirir.
Örneğin, platform / yapı dizininize değişiklik 23823'ü indirmek için:
repo download platform/build 23823
repo sync çalıştırılması,
repo download ile alınan tüm
repo sync kaldırır. Veya
git checkout m/master kullanarak uzak şubeyi kontrol edebilirsiniz.
Not: Dünya çapındaki tüm sunucularda çoğaltma gecikmeleri vardır, bu nedenle Web'de Gerrit'te bir değişikliğin görünmesi ile
repo download tüm kullanıcılar için değişikliği bulması arasında hafif bir yansıtma gecikmesi vardır.
hepsi için
repo forall [project-list] -c command
Her projede verilen kabuk komutunu çalıştırır. Aşağıdaki ek ortam değişkenleri,
repo forall tarafından sağlanır:
REPO_PROJECT, projenin benzersiz adına ayarlanır.
REPO_PATH, istemcinin köküne göre yoldur.
REPO_REMOTE, bildirimdeki uzak sistemin adıdır.
REPO_LREV, manifestten yerel bir izleme şubesine çevrilmiş revizyonun adıdır. Bildirim revizyonunu yerel olarak yürütülen bir Git komutuna iletmeniz gerekiyorsa bunu kullanın.
REPO_RREV, manifestte aynen yazıldığı gibi, manifestteki revizyonun adıdır.
Seçenekler:
-c:
-ckomut ve argümanlar. Komut,
/bin/shve herhangi bir argüman aracılığıyla kabuk konumsal parametreleri olarak geçirildikten sonra değerlendirilir.
-p: Belirtilen komutun çıktısından önce proje başlıklarını gösterir. Bu, boruları komutun stdin, stdout ve sterr akışlarına bağlayarak ve tüm çıktıları tek bir çağrı oturumunda görüntülenen sürekli bir akışa aktararak elde edilir.
-v: Komutun stderr'e yazdığı mesajları gösterir.
kuru erik
repo prune [project-list]
Zaten birleştirilmiş konuları eritir (siler).
Başlat
repo start branch-name [project-list]
Manifestte belirtilen revizyondan başlayarak geliştirme için yeni bir dal başlatır.
BRANCH_NAME argümanı, projelerde yapmaya çalıştığınız değişikliğin kısa bir açıklamasını sağlar. Bilmiyorsanız,
default adı kullanmayı düşünün.
project-list argümanı, bu konu dalına hangi projelerin katıldığını belirtir.
Not: Nokta (.), Geçerli çalışma dizinindeki proje için kısaltmadır.
statü
repo status [project-list]
Çalışma ağacını, belirtilen her projede bu daldaki (HEAD) aşamalandırma alanı (dizin) ve en son yürütme ile karşılaştırır. Bu üç durum arasında bir farkın olduğu her dosya için bir özet satırı görüntüler.
Sadece mevcut şubenin durumunu görmek için
repo status çalıştırın. Durum bilgisi projeye göre listelenir. Projedeki her dosya için iki harfli bir kod kullanılır.
İlk sütunda, 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 dizinde aynı|
|Bir||Katma||HEAD'de değil, dizinde|
|M||Değiştirilmiş||HEAD'de, dizinde değiştirildi|
|D||silindi||HEAD'de, dizinde değil|
|R||Yeniden adlandırıldı||HEAD'de değil, dizinde yol değişti|
|C||Kopyalandı||HEAD'de değil, başka bir dizinden kopyalandı|
|T||Mod değişti||HEAD ve dizinde aynı içerik, mod değişti|
|U||Birleştirilmemiş||HEAD ve dizin arasında çelişki; çözünürlük gerekli|
İkinci sütunda, küçük harf, çalışma dizininin dizinden nasıl 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|
|d||silindi||Dizinde, çalışma ağacında değil|