Alur kerja kontrol sumber

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). Untuk mengetahui penjelasan tentang hubungan antara Repo dan Git serta link ke dokumentasi pendukung untuk setiap alat, lihat Alat kontrol sumber.

Flow

Pengembangan Android melibatkan alur kerja dasar berikut:

  1. Memulai cabang topik baru menggunakan repo start.
  2. Mengedit file.
  3. Menyiapkan perubahan menggunakan git add.
  4. Meng-commit perubahan menggunakan git commit.
  5. Mengupload perubahan ke server peninjauan menggunakan repo upload.

Tugas

Menggunakan Git dan Repo di repositori kode Android melibatkan pelaksanaan tugas umum berikut.

Perintah Deskripsi
repo init Menginisialisasi 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 Meng-commit file yang disiapkan.
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 disiapkan.
git diff --cached Menampilkan perbedaan perubahan yang disiapkan.
git log Menampilkan histori cabang saat ini.
git log m/[codeline].. Menampilkan commit yang tidak dikirim.

Untuk mengetahui informasi tentang penggunaan 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 sync PROJECT0 PROJECT1 ... PROJECTN

Membuat cabang topik

Mulai cabang topik di lingkungan kerja lokal Anda setiap kali Anda memulai a perubahan, seperti saat Anda mulai mengerjakan bug atau fitur baru. Cabang topik bukan salinan file asli; cabang topik adalah pointer ke commit tertentu, yang membuat pembuatan cabang lokal dan beralih di antara cabang tersebut menjadi operasi yang ringan. Dengan menggunakan cabang, Anda dapat mengisolasi satu aspek pekerjaan Anda dari aspek lainnya. Untuk mengetahui informasi selengkapnya tentang penggunaan cabang topik, lihat Cara memisahkan cabang topik.

Untuk memulai cabang topik menggunakan Repo, buka project dan jalankan:

repo start BRANCH_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 start BRANCH_NAME PROJECT_NAME

Untuk mengetahui daftar semua project, lihat repositori Google Git. 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 checkout BRANCH_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 diawali dengan tanda bintang (*).

Menyiapkan file

Secara default, Git memperhatikan, tetapi tidak melacak perubahan yang Anda buat dalam project. Untuk memberi tahu Git agar mempertahankan perubahan Anda, Anda harus menandai atau menyiapkan perubahan tersebut untuk disertakan dalam commit.

Untuk menyiapkan perubahan:

git add

Perintah ini menerima argumen untuk file atau direktori dalam direktori project. Meskipun namanya demikian, git add tidak hanya menambahkan file ke repositori Git; perintah ini juga dapat digunakan untuk menyiapkan 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 lokal yang ditandai untuk di-commit), pastikan Anda berada di direktori project, lalu jalankan git diff dengan argumen cached:

cd ~/WORKING_DIRECTORY/PROJECT
git diff --cached

Meng-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 memberikan 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:

  1. Lihat file yang tidak digabungkan (kode status = U).
  2. Edit wilayah konflik sesuai kebutuhan.
  3. Ubah ke direktori project yang relevan. Tambahkan dan commit file yang terpengaruh files, lalu rebase perubahan:
    git add .
    git commit
    git rebase --continue
    
  4. Setelah rebase selesai, mulai 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 yang tidak aktif 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 upload untuk ditinjau.