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 synceşdeğerdir
git clone. Uzak depodaki tüm dallar yerel proje dizinine kopyalanır.
Proje daha önce senkronize edilmişse, o zaman
repo synceşdeğerdir:
git remote update git rebase origin/branch
nerede
branchyerel 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 --continueanlaş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_PROJECTprojesinin benzersiz adı ayarlanır.
REPO_PATHistemci köküne yolu görecelidir.
REPO_REMOTEManifest'ten uzak sistemin adıdır.
REPO_LREVyerel 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_RREVapaçı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/shve 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 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 .
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.