Android koduyla çalışmak için Git (açık kaynak bir sürüm kontrol sistemi) ve Repo (Git'in üzerinde çalışan, Google tarafından geliştirilmiş bir depo yönetimi aracı) kullanmanız gerekir. Repo ile Git arasındaki ilişkinin açıklamasını ve her aracın destekleyici dokümanlarına bağlantıları Kaynak Kontrol Araçları bölümünde bulabilirsiniz.
Akış
Android geliştirme, aşağıdaki temel iş akışını içerir:
repo start
simgesini kullanarak yeni bir konu dalı başlatın.- Dosyaları düzenleyin.
git add
kullanarak aşama değişiklikleri.git commit
'ü kullanarak değişiklikleri kaydedin.repo upload
'ü kullanarak değişiklikleri inceleme sunucusuna yükleyin.
Görevler
Android kod depolarında Git ve Repo ile çalışmak, aşağıdaki yaygın görevleri gerçekleştirmeyi 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şamalara ayırır. |
git commit |
Sahnelenen dosyaları gönderir. |
git branch |
Mevcut dalları gösterir. |
git branch [branch] |
Yeni bir konu dalı oluşturur. |
git checkout [branch] |
HEAD öğesini belirtilen dalla değiştirir. |
git merge [branch] |
[branch] 'ü mevcut dalla birleştirir. |
git diff |
Sahnelenmemiş değişikliklerin farkını gösterir. |
git diff --cached |
Kademeli değişikliklerin farkını gösterir. |
git log |
Mevcut dalın geçmişini gösterir. |
git log m/[codeline].. |
Yayınlanmayan taahhütleri gösterir. |
Kaynağı indirmek için Repo'yu kullanma hakkında bilgi edinmek isterseniz Kaynağı indirme ve Repo Komut Referansı başlıklı makaleleri inceleyin.
İstemcileri senkronize etme
Mevcut tüm projelerin dosyalarını senkronize etmek için:
repo sync
Seçilen projelerdeki dosyaları senkronize etmek için:
repo sync PROJECT0 PROJECT1 ... PROJECTN
Konu dalları oluşturma
Bir değişiklik yapmaya başladığınızda (ör. bir hata veya yeni özellik üzerinde çalışmaya başladığınızda) yerel çalışma ortamınızda bir konu dalı başlatın. Konu dalları, orijinal dosyaların kopyası değildir. Belirli bir kayda işaretçidir. Bu sayede yerel dallar oluşturmak ve bunlar arasında geçiş yapmak kolay bir işlem haline gelir. Dalları kullanarak çalışmanızın bir yönünü diğerlerinden ayırabilirsiniz. Konu dallarını kullanma hakkında ilginç bir makale için Konu dallarını ayırma başlıklı makaleyi inceleyin.
Repo'yu kullanarak bir konu dalı başlatmak için projeye gidin ve şu komutu çalıştırın:
repo start BRANCH_NAME .
Son nokta ( .
), mevcut ç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 geçerli projeyi temsil etmek için nokta kullanın.
Yerel çalışma ortamınızda başka bir şubeye geçmek için:
git checkout BRANCH_NAME
Mevcut şubelerin listesini görüntülemek için:
git branch
veya
repo branches
Her iki komut da mevcut dalların listesini, geçerli dalın adının önünde yıldız işareti (*) olacak şekilde döndürür.
Dosyaları hazırlama
Git, varsayılan olarak bir projede yaptığınız değişiklikleri fark eder ancak izlemez. Git'e değişikliklerinizi korumasını söylemek için bu değişiklikleri bir kayda dahil edilecek şekilde işaretlemeniz veya aşamaya eklemeniz gerekir.
Değişiklikleri aşamalı olarak uygulamak için:
git add
Bu komut, proje dizinindeki dosya veya dizinlerle ilgili bağımsız değişkenleri kabul eder. Adına rağmen git add
, Git deposuna yalnızca dosya eklemez. Dosya değişikliklerini ve silme işlemlerini aşamalandırmak için de kullanılabilir.
İstemci durumunu görüntüleme
Dosyaların durumunu listelemek için:
repo status
Taahhüt edilmemiş düzenlemeleri (taahhüt edilmek üzere işaretlenmemiş yerel düzenlemeler) görüntülemek için:
repo diff
Taahhüt edilen düzenlemeleri (taahhüt için işaretlenmiş düzenlemeler) görüntülemek istiyorsanız proje dizininde olduğunuzdan emin olun ve ardından cached
bağımsız değişkeniyle git
diff
'yi çalıştırın:
cd ~/WORKING_DIRECTORY/PROJECT
git diff --cached
Değişiklikleri kaydetme
Commit, Git'teki düzeltme denetiminin temel birimidir ve projenin tamamının dizin yapısının ve dosya içeriklerinin anlık görüntüsünden oluşur. Git'te bir taahhüt oluşturmak için şu komutu kullanın:
git commit
Bir gönderme mesajı girmeniz istendiğinde, AOSP'ye gönderilen değişiklikler için kısa (ancak faydalı) bir mesaj girin. Bir kaydetme mesajı eklemezseniz kaydetme işlemi başarısız olur.
başlıklı makaleyi inceleyin.Değişiklikleri Gerrit'e yükleme
En son düzeltmeyi uygulayın ve ardından değişikliği yükleyin:
repo sync
repo upload
Bu komutlar, kaydettiğiniz değişikliklerin 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.
Senkronizasyon çakışmalarını çözme
repo sync
komutu senkronizasyon çakışması döndürüyorsa:
- Birleştirilmemiş dosyaları görüntüleyin (durum kodu = U).
- Çakışan bölgeleri gerektiği gibi düzenleyin.
- İlgili proje dizine geçin. Etkilenen dosyaları ekleyip kaydetme, ardından değişiklikleri yeniden temellendirme:
git add .
git commit
git rebase --continue
- Yeniden temellendirme tamamlandıktan sonra senkronizasyonun tamamını tekrar başlatın:
repo sync PROJECT0 PROJECT1 ... PROJECTN
İstemcileri temizleme
Gerrit'te değişiklikleri birleştirdikten sonra yerel çalışma dizininizi güncelleyin ve ardından eski konu dallarını güvenli bir şekilde kaldırmak için repo prune
simgesini kullanın:
repo sync
repo prune
İstemcileri silme
Tüm durum bilgileri istemcinizde depolandığından, dizini dosya sisteminizden silmeniz yeterlidir:
rm -rf WORKING_DIRECTORY
Bir müşteriyi sildiğinizde, incelemeye yüklemediğiniz değişiklikler kalıcı olarak silinir.