Bekerja dengan kode Android membutuhkan penggunaan Git (sistem kontrol versi open-source) dan Repo (alat manajemen repositori buatan Google yang berjalan di atas Git). Lihat Alat Kontrol Sumber untuk penjelasan tentang hubungan antara Repo dan Git dan tautan ke dokumentasi pendukung untuk setiap alat.
Mengalir
Pengembangan Android melibatkan alur kerja dasar berikut:
- Mulai cabang topik baru menggunakan
repo start
. - Edit file.
- Perubahan
git add
menggunakangit add
. - Lakukan perubahan menggunakan
git commit
. - Unggah perubahan ke server tinjauan menggunakan
repo upload
.
Tugas
Bekerja dengan Git dan Repo di repositori kode Android melibatkan melakukan tugas umum berikut.
Perintah | Deskripsi |
---|---|
repo init | Menginisialisasi klien baru. |
repo sync | Sinkronkan klien ke repositori. |
repo start | Memulai cabang baru. |
repo status | Menunjukkan status cabang saat ini. |
repo upload | Mengunggah perubahan ke server tinjauan. |
git add | Tahapan file. |
git commit | Melakukan file bertahap. |
git branch | Menunjukkan cabang saat ini. |
git branch [branch] | Membuat cabang topik baru. |
git checkout [branch] | Mengalihkan HEAD ke cabang yang ditentukan. |
git merge [branch] | Gabungkan [branch] menjadi cabang saat ini. |
git diff | Menunjukkan perbedaan dari perubahan yang tidak dipentaskan. |
git diff --cached | Menunjukkan perbedaan dari perubahan bertahap. |
git log | Menunjukkan sejarah cabang saat ini. |
git log m/[codeline].. | Menunjukkan komit yang tidak didorong. |
Untuk informasi tentang menggunakan Repo untuk mengunduh sumber, lihat Mengunduh Sumber dan Referensi Perintah Repo .
Menyinkronkan klien
Untuk menyinkronkan file untuk semua proyek yang tersedia:
repo sync
Untuk menyinkronkan file untuk proyek yang dipilih:
repo sync PROJECT0 PROJECT1 ... PROJECTN
Membuat cabang topik
Mulai cabang topik di lingkungan kerja lokal Anda setiap kali Anda memulai perubahan, seperti saat Anda mulai mengerjakan bug atau fitur baru. Cabang topik bukanlah salinan dari file asli; ini adalah penunjuk ke komit tertentu, yang membuat pembuatan cabang lokal dan beralih di antaranya menjadi operasi ringan. Dengan menggunakan cabang, Anda dapat memisahkan satu aspek pekerjaan Anda dari yang lain. Untuk artikel menarik tentang penggunaan cabang topik, lihat Memisahkan cabang topik .
Untuk memulai cabang topik menggunakan Repo, navigasikan ke proyek dan jalankan:
repo start BRANCH_NAME .
Periode akhir (.) Mewakili proyek di direktori kerja saat ini.
Untuk memverifikasi bahwa cabang baru telah dibuat:
repo status .
Menggunakan cabang topik
Untuk menetapkan cabang ke proyek tertentu:
repo start BRANCH_NAME PROJECT_NAME
Untuk daftar semua proyek, lihat android.googlesource.com . Jika Anda sudah menavigasi ke direktori proyek, cukup gunakan titik untuk mewakili proyek saat ini.
Untuk beralih ke cabang lain di lingkungan kerja lokal Anda:
git checkout BRANCH_NAME
Untuk melihat daftar cabang yang ada:
git branch
atau
repo branches
Kedua perintah mengembalikan daftar cabang yang ada dengan nama cabang saat ini yang diawali dengan tanda bintang (*).
Pementasan file
Secara default, Git memperhatikan tetapi tidak melacak perubahan yang Anda buat dalam sebuah proyek. Untuk memberitahu Git untuk melestarikan perubahan, Anda harus menandai atau tahap perubahan-perubahan untuk dimasukkan dalam komit.
Untuk tahap perubahan:
git add
Perintah ini menerima argumen untuk file atau direktori di dalam direktori proyek. Terlepas dari namanya, git add
tidak hanya menambahkan file ke repositori Git; itu juga dapat digunakan untuk modifikasi dan penghapusan file tahap.
Melihat status klien
Untuk membuat daftar status file:
repo status
Untuk melihat suntingan tanpa ikatan (suntingan lokal yang tidak ditandai untuk komit):
repo diff
Untuk melihat pengeditan yang dikomit (lokasi pengeditan yang ditandai untuk pengubahan), pastikan Anda berada di direktori proyek, lalu jalankan git diff
dengan argumen yang di- cached
:
cd ~/WORKING_DIRECTORY/PROJECT
git diff --cached
Melakukan perubahan
Komit adalah unit dasar kontrol revisi di Git dan terdiri dari cuplikan struktur direktori dan konten file untuk keseluruhan proyek. Untuk membuat komit di Git:
git commit
Saat diminta untuk pesan komit, berikan pesan singkat (tapi membantu) untuk perubahan yang dikirimkan ke AOSP. Jika Anda tidak menambahkan pesan komit, komit dibatalkan.
Mengupload perubahan ke Gerrit
Perbarui ke revisi terbaru, lalu unggah perubahan:
repo sync
repo upload
Perintah ini mengembalikan daftar perubahan yang telah Anda lakukan dan meminta Anda memilih cabang yang akan diunggah ke server tinjauan. Jika hanya ada satu cabang, Anda akan melihat prompt y/n
sederhana.
Menyelesaikan konflik sinkronisasi
Jika perintah repo sync
mengembalikan konflik sinkronisasi:
- Lihat file yang dipisahkan (kode status = U).
- Edit daerah konflik seperlunya.
- Ubah ke direktori proyek yang relevan. Tambahkan dan komit file yang terpengaruh, lalu lakukan rebase perubahan:
git add .
git commit
git rebase --continue
- Setelah rebase selesai, mulai seluruh sinkronisasi lagi:
repo sync PROJECT0 PROJECT1 ... PROJECTN
Membersihkan klien
Setelah menggabungkan perubahan ke Gerrit, perbarui direktori kerja lokal Anda, kemudian gunakan repo prune
untuk menghapus cabang topik basi dengan aman:
repo sync
repo prune
Menghapus klien
Karena semua informasi status disimpan di klien Anda, Anda hanya perlu menghapus direktori dari sistem file Anda:
rm -rf WORKING_DIRECTORY
Menghapus klien akan menghapus secara permanen setiap perubahan yang belum Anda unggah untuk ditinjau.