Referensi perintah repo

Repo melengkapi Git dengan menyederhanakan pekerjaan di beberapa repositori. Untuk penjelasan tentang hubungan antara Repo dan Git, lihat Alat kontrol sumber . Untuk detail lebih lanjut tentang Repo, lihat Repo README

Penggunaan repo mengambil bentuk berikut:

repo command options

Elemen opsional ditunjukkan dalam tanda kurung []. Misalnya, banyak perintah menggunakan project-list sebagai argumen. Anda dapat menentukan project-list sebagai daftar nama atau daftar jalur ke direktori sumber lokal untuk proyek tersebut:

repo sync [project0 project1 ... projectn]
repo sync [/path/to/project0 ... /path/to/projectn]

membantu

repo help

Memberikan bantuan pada perintah repo . Anda dapat melihat informasi mendetail tentang perintah Repo tertentu dengan menentukan perintah sebagai opsi:

repo help command

Misalnya, perintah berikut menghasilkan deskripsi dan daftar opsi untuk perintah init :

repo help init

Atau, untuk melihat hanya daftar opsi yang tersedia untuk suatu perintah, jalankan:

repo command --help

Misalnya:

repo init --help

inisiasi

repo init -u url [options]

Menginstal Repo di direktori saat ini. Perintah ini membuat direktori .repo/ dengan repositori Git untuk kode sumber Repo dan file manifes Android standar.

Pilihan:

  • -u : Tentukan URL untuk mengambil repositori manifes. Manifes umum dapat ditemukan di https://android.googlesource.com/platform/manifest .

  • -m : Pilih file manifes dalam repositori. Jika tidak ada nama manifes yang dipilih, defaultnya adalah default.xml .

  • -b : Tentukan revisi, yaitu manifest-branch tertentu.

sinkronisasi

repo sync [project-list]

Mengunduh perubahan baru dan memperbarui file yang berfungsi di lingkungan lokal Anda, yang pada dasarnya menyelesaikan git fetch di semua repositori Git. Jika Anda menjalankan repo sync tanpa argumen, ini akan menyinkronkan file untuk semua proyek.

Saat Anda menjalankan repo sync , inilah yang terjadi:

  • Jika proyek belum pernah disinkronkan, maka repo sync setara dengan git clone ; semua cabang di repositori jarak jauh disalin ke direktori proyek lokal.

  • Jika proyek telah disinkronkan sebelumnya, maka repo sync setara dengan:

    git remote update
    git rebase origin/branch
    

    Dimana branch adalah cabang yang diperiksa saat ini di direktori proyek lokal. Jika cabang lokal tidak melacak cabang di repositori jarak jauh, maka tidak ada sinkronisasi yang terjadi untuk proyek tersebut.

Setelah repo sync berhasil dijalankan, kode dalam proyek tertentu akan diperbarui dan disinkronkan dengan kode di repositori jarak jauh.

Opsi utama:

  • -c : Ambil hanya cabang manifes saat ini dari server.
  • -d : Mengalihkan proyek tertentu kembali ke revisi manifes. Opsi ini berguna jika proyek berada pada cabang topik, namun revisi manifes diperlukan untuk sementara.
  • -f : Lanjutkan sinkronisasi proyek lain meskipun proyek gagal disinkronkan.
  • threadcount : Pisahkan sinkronisasi antar thread untuk penyelesaian lebih cepat. Pastikan Anda tidak membebani mesin Anda - sisakan sebagian CPU untuk tugas lain. Untuk melihat jumlah CPU yang tersedia, jalankan nproc --all terlebih dahulu.
  • -q : Jalankan secara senyap dengan menyembunyikan pesan status.
  • -s : Sinkronkan ke build yang dikenal baik seperti yang ditentukan oleh elemen manifest-server dalam manifes saat ini.

Untuk opsi lainnya, jalankan repo help sync .

mengunggah

repo upload [project-list]

Mengunggah perubahan ke server ulasan. Untuk proyek tertentu, Repo membandingkan cabang lokal dengan cabang jarak jauh yang diperbarui selama sinkronisasi Repo terakhir. Repo meminta Anda memilih satu atau lebih cabang yang belum diunggah untuk ditinjau.

Semua komitmen pada cabang yang dipilih kemudian dikirimkan ke Gerrit melalui koneksi HTTPS. Anda perlu mengonfigurasi kata sandi HTTPS untuk mengaktifkan otorisasi pengunggahan. Untuk membuat pasangan nama pengguna/kata sandi baru untuk digunakan melalui HTTPS, kunjungi Pembuat kata sandi .

Saat Gerrit menerima data objek melalui servernya, Gerrit mengubah setiap penerapan menjadi perubahan sehingga peninjau dapat mengomentari penerapan tertentu. Untuk menggabungkan beberapa pos pemeriksaan menjadi satu penerapan, gunakan git rebase -i sebelum Anda menjalankan unggahan.

Jika Anda menjalankan repo upload tanpa argumen, ia akan mencari perubahan yang akan diunggah di semua proyek.

Untuk mengedit perubahan setelah diunggah, gunakan alat seperti git rebase -i atau git commit --amend untuk memperbarui komitmen lokal Anda. Setelah pengeditan Anda selesai:

  • Verifikasi bahwa cabang yang diperbarui adalah cabang yang diperiksa saat ini.
  • Gunakan repo upload --replace PROJECT untuk membuka editor pencocokan perubahan.
  • Untuk setiap komit dalam rangkaian, masukkan ID perubahan Gerrit di dalam tanda kurung:

    # Replacing from branch foo
    [ 3021 ] 35f2596c Refactor part of GetUploadableBranches to lookup one specific...
    [ 2829 ] ec18b4ba Update proto client to support patch set replacements
    # Insert change numbers in the brackets to add a new patch set.
    # To create a new change record, leave the brackets empty.
    

Setelah upload selesai, perubahannya ada set patch tambahan.

Jika Anda hanya ingin mengunggah cabang Git yang sedang diperiksa, gunakan tanda --current-branch (atau disingkat --cbr ).

berbeda

repo diff [project-list]

Menunjukkan perubahan luar biasa antara penerapan dan pohon kerja menggunakan git diff .

unduh

repo download target change

Mengunduh perubahan yang ditentukan dari sistem peninjauan dan membuatnya tersedia di direktori kerja lokal proyek Anda.

Misalnya, untuk mengunduh perubahan 23823 ke direktori platform/build Anda:

repo download platform/build 23823

Menjalankan repo sync menghapus semua komitmen yang diambil dengan repo download . Atau Anda dapat memeriksa cabang jarak jauh menggunakan git checkout m/main .

untuk semua

repo forall [project-list] -c command

Jalankan perintah shell yang diberikan di setiap proyek. Variabel lingkungan tambahan berikut disediakan oleh repo forall :

  • REPO_PROJECT disetel ke nama unik proyek.
  • REPO_PATH adalah jalur yang berhubungan dengan root klien.
  • REPO_REMOTE adalah nama sistem jarak jauh dari manifes.
  • REPO_LREV adalah nama revisi dari manifes, diterjemahkan ke cabang pelacakan lokal. Gunakan variabel ini jika Anda perlu meneruskan revisi manifes ke perintah Git yang dijalankan secara lokal.
  • REPO_RREV adalah nama revisi dari manifes, persis seperti yang tertulis di manifes.

Pilihan:

  • -c : Perintah dan argumen untuk dieksekusi. Perintah tersebut dievaluasi melalui /bin/sh dan argumen apa pun setelahnya diteruskan sebagai parameter posisi shell.
  • -p : Tampilkan header proyek sebelum keluaran perintah yang ditentukan. Hal ini dicapai dengan mengikat pipa ke aliran stdin, stdout, dan sterr perintah, dan menyalurkan semua output ke dalam aliran berkelanjutan yang ditampilkan dalam satu sesi pager.
  • -v : Menampilkan pesan yang ditulis perintah ke stderr.

memangkas

repo prune [project-list]

Memangkas (menghapus) topik yang sudah digabungkan.

awal

repo start branch-name [project-list]

Memulai cabang baru untuk pengembangan, dimulai dari revisi yang ditentukan dalam manifes.

Argumen BRANCH_NAME memberikan penjelasan singkat tentang perubahan yang Anda coba lakukan pada proyek. Jika Anda tidak tahu, pertimbangkan untuk menggunakan nama default .

Argumen project-list menentukan proyek mana yang berpartisipasi dalam cabang topik ini.

status

repo status [project-list]

Membandingkan pohon kerja dengan staging area (indeks) dan komit terbaru pada cabang ini (HEAD) di setiap proyek yang ditentukan. Menampilkan baris ringkasan untuk setiap file yang terdapat perbedaan antara ketiga status tersebut.

Untuk melihat status cabang saat ini saja, jalankan repo status . . Informasi status dicantumkan berdasarkan proyek. Untuk setiap file dalam proyek, kode dua huruf digunakan.

Di kolom pertama, huruf besar menunjukkan perbedaan staging area dengan status komitmen terakhir.

Surat Arti Keterangan
- Tidak ada perubahan Sama di HEAD dan indeks
A Ditambahkan Bukan di HEAD, di index
M Diubah Di HEAD, dimodifikasi di index
D Dihapus Di HEAD, bukan di index
R Berganti nama Tidak di HEAD, jalur diubah di index
C Disalin Bukan di HEAD, disalin dari yang lain di index
T Modusnya berubah Konten yang sama di HEAD dan indeks, mode diubah
kamu Tidak digabungkan Konflik antara HEAD dan indeks; diperlukan resolusi

Di kolom kedua, huruf kecil menunjukkan perbedaan direktori kerja dari indeks.

Surat Arti Keterangan
- Baru/tidak diketahui Tidak di indeks, di pohon kerja
M Diubah Dalam indeks, di pohon kerja, dimodifikasi
D Dihapus Di indeks, bukan di pohon kerja

Tangani kesalahan repo

git commit -a # Commit local changes first so they aren't lost.
repo start branch-name # Start the branch
git reset --hard HEAD@{1} # And reset the branch so that it matches the commit before repo start
repo upload .

Kesalahan repo: error: no branches ready for upload muncul ketika perintah repo start tidak dijalankan pada awal sesi. Untuk memulihkan, Anda dapat memeriksa ID komit, memulai cabang baru, lalu menggabungkannya.