Kaynak denetimi iş akışı

Android koduyla çalışmak için Git (bir açık kaynak) sürüm kontrol sistemi) ve Repo (Google tarafından oluşturulmuş bir depo) yönetim aracı) ekleyebilirsiniz. Kaynak Kontrol Araçları'na bakın arasındaki ilişkinin açıklama kısmına Kod deposu, Git ve her araç için destekleyici dokümanların bağlantıları.

Akma

Android geliştirme süreci aşağıdaki temel iş akışını içerir:

  1. repo start kullanarak yeni bir konu dalı başlatın.
  2. Dosyaları düzenleyin.
  3. git add kullanılarak aşama değişiklikleri.
  4. Değişiklikleri git commit kullanarak kaydedin.
  5. repo upload kullanarak değişiklikleri inceleme sunucusuna yükleyin.

Görevler

Android kod depolarında Git ve Repo ile çalışmak, yaygın olarak kullanılan görevleri içerir.

Komut Açıklama
repo init Yeni bir istemciyi başlatır.
repo sync İstemciyi depolarla senkronize eder.
repo start Yeni bir dal başlatır.
repo status Mevcut dalın durumunu gösterir.
repo upload Değişiklikleri inceleme sunucusuna yükler.
git add Dosyaları aşamalar.
git commit Aşamalı dosyaları kaydeder.
git branch Mevcut dalları gösterir.
git branch [branch] Yeni bir konu dalı oluşturur.
git checkout [branch] HEAD öğesini belirtilen dala değiştirir.
git merge [branch] [branch] öğesini mevcut dala birleştirir.
git diff Uygulanmamış değişikliklerin farklarını gösterir.
git diff --cached Aşamalı değişikliklerin farklarını gösterir.
git log Geçerli dalın geçmişini gösterir.
git log m/[codeline].. Aktarılmayan kaydetmeleri gösterir.

Kaynak indirmek için Repo'yu kullanma hakkında bilgi edinmek istiyorsanız Kaynağı İndirme ve Repo Komut Referansı.

İstemcileri senkronize etme

Dosyaları mevcut tüm projeler için senkronize etmek için:

repo sync

Seçili projelerin dosyalarını senkronize etmek için:

repo sync PROJECT0 PROJECT1 ... PROJECTN

Konu dalları oluşturma

Yeni bir projeye başladığınızda, yerel çalışma ortamınızda bir bir hata veya yeni bir özellik üzerinde çalışmaya başladığınızda olduğu gibi. Bir konu dalı Orijinal dosyaların kopyası olmayan; daha kapsamlı bir yerel şubeler oluşturmayı ve bunlar arasında geçiş yapmayı sağlayan, basit bir işlemdir. Dalları kullanarak projenizin bir yönünü size yardımcı olabilir. topic kullanma hakkında ilginç bir makale için dallar, Ayırma konu dalları ekleyin.

Repo'yu kullanarak bir konu dalı oluşturmak için projeye gidip şu komutu çalıştırın:

repo start BRANCH_NAME .

Sonraki dönem ( .), mevcut çalışmadaki projeyi temsil eder dizin.

Yeni dalın oluşturulduğunu doğrulamak için:

repo status .

Konu dallarını kullanma

Dalı belirli bir projeye atamak için:

repo start BRANCH_NAME PROJECT_NAME

Tüm projelerin listesi için android.googlesource.com adresine gidin. Proje dizinine zaten gittiyseniz temsil eder.

Yerel çalışma ortamınızda başka bir dala geçmek için:

git checkout BRANCH_NAME

Mevcut dalların listesini görüntülemek için:

git branch

veya

repo branches

Her iki komut da başına yıldız (*) işareti eklenir.

Hazırlık dosyaları

Git, varsayılan olarak bir projede yaptığınız değişiklikleri fark eder ancak izlemez. Git'e değişikliklerinizi korumasını bildirmek için bu değişiklikleri işaretlemeniz veya hazırlamanız gerekir çeşitli değişiklikleri göz önünde bulundurun.

Aşama değişiklikleri:

git add

Bu komut, proje içindeki dosyalar veya dizinler için bağımsız değişkenleri kabul eder dizin. Adı olsa da, git add yalnızca Git deposu; dosyalar üzerinde değişiklik yapmak ve dosya üzerinde silme sayısı.

İstemci durumunu görüntüleme

Dosyaların durumunu listelemek için:

repo status

Onaylanmamış düzenlemeleri (kaydedilmek üzere işaretlenmemiş yerel düzenlemeler) görüntülemek için:

repo diff

Kaydedilen düzenlemeleri (bulunan ve işaretlenen düzenlemeler) görüntülemek için taahhüt etmeniz gerekir), proje dizininde olduğunuzdan emin olun ve ardından cached bağımsız değişkeniyle git diff komutunu çalıştırın:

cd ~/WORKING_DIRECTORY/PROJECT
git diff --cached

Değişiklikler uygulanıyor

Taahhüt, Git'teki revizyon kontrolünün temel birimidir ve şunları içerir: tüm proje için dizin yapısının ve dosya içeriğinin anlık görüntüsü. Git'te bir kayıt oluşturmak için şu komutu kullanın:

git commit

Bir kayıt mesajı istendiğinde, şunun için kısa (ama faydalı) bir mesaj girin: AOSP'ye gönderilen değişiklikler. Bir kayıt mesajı eklemezseniz kaydetme işlemi başarısız olur.

Değişiklikler Gerrit'e yükleniyor

En son düzeltmeye güncelleyin ve değişikliği yükleyin:

repo sync
repo upload

Bu komutlar, yaptığınız değişikliklerin bir listesini döndürür ve sizden inceleme sunucusuna yüklenecek dalları seçin. Yalnızca bir daldığınızda basit bir y/n istemi görürsünüz.

Senkronizasyon çakışmalarını çözme

repo sync komutu senkronizasyon çakışmalarını döndürürse:

  1. Ayrılmış dosyaları görüntüleyin (durum kodu = U).
  2. Çakışan bölgeleri gerektiği gibi düzenleyin.
  3. İlgili proje dizinine geçin. Etkilenen kişileri ekleyin ve kaydedin dosyaları yeniden oluşturun ve değişiklikleri yeniden temel alın:
    git add .
    git commit
    git rebase --continue
    
    .
  4. Yeniden temel oluşturma işlemi tamamlandıktan sonra tüm senkronizasyonu yeniden başlatın:
    repo sync PROJECT0 PROJECT1 ... PROJECTN
    
    .

İstemcileri temizleme

Değişiklikleri Gerrit'te birleştirdikten sonra yerel çalışma dizininizi güncelleyin, ardından Eski konu dallarını güvenli bir şekilde kaldırmak için repo prune:

repo sync
repo prune

İstemcileri silme

Tüm durum bilgileri istemcinizde saklandığından, tek yapmanız gereken dizini dosya sisteminizden silin:

rm -rf WORKING_DIRECTORY

İstemci silindiğinde henüz yapmadığınız tüm değişiklikler kalıcı olarak silinir yüklenmek üzere yüklendi.