Bekerja dengan kode Android memerlukan penggunaan Git (sistem kontrol versi sumber terbuka) 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
. - Mengedit file.
- Tahap perubahan menggunakan
git add
. - Komit 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-tugas umum berikut.
Memerintah | Keterangan |
---|---|
repo init | Inisialisasi klien baru. |
repo sync | Menyinkronkan klien ke repositori. |
repo start | Memulai cabang baru. |
repo status | Menunjukkan status cabang saat ini. |
repo upload | Mengunggah perubahan ke server ulasan. |
git add | Tahapan file. |
git commit | Mengkomit file yang dipentaskan. |
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] | Menggabungkan [branch] ke dalam 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; itu adalah penunjuk ke komit tertentu, yang membuat pembuatan cabang lokal dan beralih di antara mereka menjadi operasi yang ringan. Dengan menggunakan cabang, Anda dapat mengisolasi 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 didahului dengan tanda bintang (*).
File pementasan
Secara default, Git memperhatikan tetapi tidak melacak perubahan yang Anda buat dalam sebuah proyek. Untuk memberi tahu Git untuk mempertahankan perubahan Anda, Anda harus menandai atau mengatur perubahan tersebut untuk dimasukkan dalam komit.
Untuk mengubah tahapan:
git add
Perintah ini menerima argumen untuk file atau direktori dalam direktori proyek. Terlepas dari namanya, git add
tidak hanya menambahkan file ke repositori Git; itu juga dapat digunakan untuk melakukan modifikasi dan penghapusan file.
Melihat status klien
Untuk membuat daftar status file:
repo status
Untuk melihat suntingan yang tidak dikomit (editan lokal yang tidak ditandai untuk komit):
repo diff
Untuk melihat suntingan yang dikomit (edit yang terletak yang ditandai untuk komit), 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 snapshot struktur direktori dan konten file untuk keseluruhan proyek. Gunakan perintah ini untuk membuat komit di Git:
git commit
Saat diminta untuk pesan komit, berikan pesan singkat (tetapi bermanfaat) untuk perubahan yang dikirimkan ke AOSP. Jika Anda tidak menambahkan pesan komit, komit gagal.
Mengunggah 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 untuk 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 tidak digabungkan (kode status = U).
- Edit daerah konflik seperlunya.
- Ubah ke direktori proyek yang relevan. Tambahkan dan komit file yang terpengaruh, lalu rebase perubahannya:
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, lalu 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 semua perubahan yang belum Anda unggah untuk ditinjau.