Google 致力于为黑人社区推动种族平等。查看具体举措
Bu sayfa, Cloud Translation API ile çevrilmiştir.
Switch to English

Kaynak Kontrol İş Akışı

Android koduyla çalışmak, Git (açık kaynaklı bir sürüm kontrol sistemi) ve Repo (Git'in üzerinde çalışan Google tarafından oluşturulmuş bir depo yönetim aracı) kullanılmasını gerektirir. Repo ile Git arasındaki ilişkinin açıklaması ve her araç için destekleyici belgelere bağlantılar için bkz. Kaynak Kontrol Araçları .

Akış

Android geliştirme, aşağıdaki temel iş akışını içerir:

  1. repo start kullanarak yeni bir konu dalı repo start .
  2. Dosyaları düzenleyin.
  3. git add kullanarak sahne değişiklikleri.
  4. git commit kullanarak değişiklikleri git commit .
  5. repo upload kullanarak değişiklikleri inceleme sunucusuna repo upload .

Görevler

Android kod depolarında Git ve Repo ile çalışmak, aşağıdaki genel görevlerin gerçekleştirilmesini içerir.

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

Kaynak indirmek için Repo kullanma hakkında bilgi için bkz . Kaynağı İndirme ve Repo Komut Referansı .

İstemcileri senkronize etme

Mevcut tüm projeler için dosyaları senkronize etmek için:

repo sync

Dosyaları seçilen projeler için senkronize etmek için:

repo sync PROJECT0 PROJECT1 ... PROJECTN

Konu dalları oluşturma

Bir hata veya yeni özellik üzerinde çalışmaya başladığınızda olduğu gibi, bir değişikliğe başladığınızda, yerel çalışma ortamınızda bir konu dalı başlatın. Bir konu dalı, orijinal dosyaların bir kopyası değildir ; yerel şubeler oluşturmayı ve bunlar arasında geçişi hafif bir işlem haline getiren belirli bir commit için bir göstericidir. Dalları kullanarak çalışmanızın bir yönünü diğerlerinden ayırabilirsiniz. Konu dallarını kullanmayla ilgili ilginç bir makale için Konu dallarını ayırma konusuna bakın.

Repo kullanarak bir konu dalı başlatmak için projeye gidin ve çalıştırın:

repo start BRANCH_NAME .

Sondaki nokta (.), Geçerli çalışma dizinindeki projeyi temsil eder.

Yeni şubenin oluşturulduğunu doğrulamak için:

repo status .

Konu dallarını kullanma

Şubeyi belirli bir projeye atamak için:

repo start BRANCH_NAME PROJECT_NAME

Tüm projelerin listesi için android.googlesource.com adresine bakın. Proje dizinine zaten gittiyseniz, mevcut projeyi temsil etmek için sadece bir nokta kullanın.

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

git checkout BRANCH_NAME

Mevcut şubelerin bir listesini görüntülemek için:

git branch

veya

repo branches

Her iki komut da mevcut dalların listesini, önünde yıldız işareti (*) bulunan geçerli dalın adıyla birlikte döndürür.

Hazırlama dosyaları

Varsayılan olarak Git, bir projede yaptığınız değişiklikleri fark eder ancak izlemez. Yaptığınız değişiklikleri saklamak için Git söylemek gerekirse işaretlemek veya bir taahhüt eklenmek üzere bu değişiklikleri sahne gerekir.

Değişiklikleri sahnelemek için:

git add

Bu komut, proje dizini içindeki dosyalar veya dizinler için bağımsız değişkenleri kabul eder. İsme rağmen git add sadece Git deposuna dosya eklemez; dosya değişikliklerini ve silme işlemlerini hazırlamak için de kullanılabilir.

İstemci durumunu görüntüleme

Dosyaların durumunu listelemek için:

repo status

Kararsız düzenlemeleri (işlemek için işaretlenmemiş yerel düzenlemeler) görüntülemek için:

repo diff

Kaydedilmiş düzenlemeleri (tamamlama için işaretlenmiş bulunan düzenlemeler) görüntülemek için, proje dizininde olduğunuzdan emin olun ve ardından cached bağımsız değişkenle git diff çalıştırın:

cd ~/WORKING_DIRECTORY/PROJECT
git diff --cached

Değişiklikleri uygulamak

Kaydetme , Git'teki temel revizyon kontrol birimidir ve tüm proje için dizin yapısının ve dosya içeriklerinin anlık görüntüsünden oluşur. Git'te bir kaydetme oluşturmak için:

git commit

Bir tamamlama mesajı istendiğinde, AOSP'ye gönderilen değişiklikler için kısa (ama yararlı) bir mesaj sağlayın. Bir commit mesajı eklemezseniz, commit iptal edilir.

Gerrit'e değişiklikler yükleniyor

En son revizyona güncelleyin, ardından değişikliği yükleyin:

repo sync
repo upload

Bu komutlar, taahhüt ettiğiniz değişikliklerin bir listesini döndürür ve inceleme sunucusuna yüklenecek dalları seçmenizi ister. Yalnızca bir dal varsa, basit bir y/n istemi görürsünüz.

Eşitleme çakışmalarını çözme

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

  1. Birleştirilmemiş dosyaları görüntüleyin (durum kodu = U).
  2. Çatışma bölgelerini gerektiği gibi düzenleyin.
  3. İlgili proje dizinine geçin. Etkilenen dosyaları ekleyin ve kesin, ardından değişiklikleri yeniden yapın:
    git add .
    git commit
    git rebase --continue
    
  4. Yeniden temelleme tamamlandıktan sonra, tüm eşitlemeyi yeniden başlatın:
    repo sync PROJECT0 PROJECT1 ... PROJECTN
    

Müşterileri temizlemek

Gerrit'teki değişiklikleri 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 kullanın:

repo sync
repo prune

İstemcileri silme

Tüm durum bilgileri istemcinizde saklandığından, yalnızca dizini dosya sisteminizden silmeniz gerekir:

rm -rf WORKING_DIRECTORY

Bir istemciyi silmek, gözden geçirilmek üzere yüklemediğiniz tüm değişiklikleri kalıcı olarak siler .