Untuk menggunakan kode Android, Anda harus menggunakan Git (sistem kontrol versi open source) dan Repo (alat pengelolaan repositori buatan Google yang berjalan di atas Git). Lihat Alat Kontrol Sumber untuk mendapatkan penjelasan tentang hubungan antara Repo dan Git serta link ke dokumentasi pendukung untuk setiap alat.
Aliran
Pengembangan Android melibatkan alur kerja dasar berikut:
- Mulai cabang topik baru menggunakan
repo start
. - Edit file.
- Perubahan tahap menggunakan
git add
. - Lakukan commit perubahan menggunakan
git commit
. - Upload perubahan ke server peninjauan menggunakan
repo upload
.
Tasks
Menggunakan Git dan Repo di repositori kode Android melibatkan tugas umum berikut.
Perintah | Deskripsi |
---|---|
repo init |
Melakukan inisialisasi klien baru. |
repo sync |
Menyinkronkan klien ke repositori. |
repo start |
Memulai cabang baru. |
repo status |
Menampilkan status cabang saat ini. |
repo upload |
Mengupload perubahan ke server peninjauan. |
git add |
Menyiapkan file. |
git commit |
Melakukan commit pada file yang di-stage. |
git branch |
Menampilkan 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 cabang saat ini. |
git diff |
Menampilkan perbedaan perubahan yang tidak di-stage. |
git diff --cached |
Menampilkan perbedaan perubahan yang di-stage. |
git log |
Menampilkan histori cabang saat ini. |
git log m/[codeline].. |
Menampilkan commit yang tidak di-push. |
Untuk informasi tentang cara menggunakan Repo untuk mendownload sumber, lihat Mendownload Sumber dan Referensi Perintah Repo.
Menyinkronkan klien
Untuk menyinkronkan file untuk semua project yang tersedia:
repo sync
Untuk menyinkronkan file untuk project yang dipilih:
repo syncPROJECT0 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 bukan salinan file asli; ini adalah pointer ke commit tertentu, yang membuat pembuatan cabang lokal dan beralih di antara cabang tersebut menjadi operasi ringan. Dengan menggunakan cabang, Anda dapat mengisolasi satu aspek pekerjaan dari yang lain. Untuk artikel menarik tentang penggunaan cabang topik, lihat Memisahkan cabang topik.
Untuk memulai cabang topik menggunakan Repo, buka project dan jalankan:
repo startBRANCH_NAME .
Titik di akhir ( .
) mewakili project di direktori kerja saat ini.
Untuk memverifikasi bahwa cabang baru telah dibuat:
repo status .
Menggunakan cabang topik
Untuk menetapkan cabang ke project tertentu:
repo startBRANCH_NAME PROJECT_NAME
Untuk daftar semua project, lihat android.googlesource.com. Jika Anda sudah membuka direktori project, cukup gunakan titik untuk mewakili project saat ini.
Untuk beralih ke cabang lain di lingkungan kerja lokal Anda:
git checkoutBRANCH_NAME
Untuk melihat daftar cabang yang ada:
git branch
atau
repo branches
Kedua perintah tersebut menampilkan daftar cabang yang ada dengan nama cabang saat ini yang didahului dengan tanda bintang (*).
File staging
Secara default, Git akan melihat, tetapi tidak melacak perubahan yang Anda buat dalam project. Untuk memberi tahu Git agar mempertahankan perubahan, Anda harus menandai atau menyiapkan perubahan tersebut untuk disertakan dalam commit.
Untuk melakukan staging perubahan:
git add
Perintah ini menerima argumen untuk file atau direktori dalam direktori
project. Meskipun namanya, git add
tidak hanya menambahkan file ke repositori Git; file ini juga dapat digunakan untuk melakukan staging modifikasi dan penghapusan file.
Melihat status klien
Untuk mencantumkan status file:
repo status
Untuk melihat hasil edit yang belum di-commit (hasil edit lokal yang tidak ditandai untuk di-commit):
repo diff
Untuk melihat hasil edit yang di-commit (hasil edit yang ditandai untuk commit), pastikan Anda berada di direktori project, lalu jalankan git
diff
dengan argumen cached
:
cd
~/WORKING_DIRECTORY/PROJECT git diff --cached
Melakukan commit perubahan
Commit adalah unit dasar kontrol revisi di Git dan terdiri dari snapshot struktur direktori dan konten file untuk seluruh project. Gunakan perintah ini untuk membuat commit di Git:
git commit
Saat diminta untuk memasukkan pesan commit, berikan pesan singkat (tetapi bermanfaat) untuk perubahan yang dikirimkan ke AOSP. Jika Anda tidak menambahkan pesan commit, commit akan gagal.
Mengupload perubahan ke Gerrit
Update ke revisi terbaru, lalu upload perubahan:
repo sync
repo upload
Perintah ini menampilkan daftar perubahan yang telah Anda commit dan meminta Anda untuk
memilih cabang yang akan diupload ke server peninjauan. Jika hanya ada satu
cabang, Anda akan melihat perintah y/n
sederhana.
Menyelesaikan konflik sinkronisasi
Jika perintah repo sync
menampilkan konflik sinkronisasi:
- Melihat file yang tidak digabungkan (kode status = U).
- Edit wilayah konflik sesuai kebutuhan.
- Ubah ke direktori project yang relevan. Tambahkan dan commit file yang terpengaruh, lalu buat ulang dasar perubahan:
git add .
git commit
git rebase --continue
- Setelah rebase selesai, mulai lagi seluruh sinkronisasi:
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 yang sudah tidak berlaku dengan aman:
repo sync
repo prune
Menghapus klien
Karena semua informasi status disimpan di klien, Anda hanya perlu menghapus direktori dari sistem file:
rm -rfWORKING_DIRECTORY
Menghapus klien akan menghapus secara permanen perubahan apa pun yang belum Anda upload untuk ditinjau.