Google berkomitmen untuk mendorong terwujudnya keadilan ras bagi komunitas Kulit Hitam. Lihat caranya.

Referensi Perintah Repo

Repo melengkapi Git dengan menyederhanakan pekerjaan di beberapa repositori. Lihat Sumber Control Alat untuk penjelasan hubungan antara Repo dan Git. Untuk rincian lebih lanjut tentang Repo, lihat Repo README .

Penggunaan repo mengambil bentuk berikut:

repo command options

Elemen opsional ditampilkan dalam tanda kurung [ ]. Sebagai contoh, banyak perintah mengambil project-list sebagai argumen. Anda dapat menentukan project-list sebagai daftar nama atau daftar path ke direktori sumber lokal untuk proyek-proyek:

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

Tolong

Halaman ini hanya menyoroti opsi utama. Lihat bantuan baris perintah untuk detail selengkapnya. Saat Repo diinstal, Anda dapat menemukan dokumentasi terbaru yang dimulai dengan ringkasan semua perintah dengan menjalankan:

repo help

Anda dapat melihat informasi terperinci tentang perintah apa pun dengan menjalankan ini di dalam pohon Repo:

repo help command

Sebagai contoh, perintah berikut menghasilkan deskripsi dan daftar pilihan untuk init argumen Repo, yang menginisialisasi Repo dalam direktori saat ini. (Lihat init untuk rincian.)

repo help init

Atau untuk hanya melihat daftar opsi yang tersedia, jalankan:

repo command --help
Misalnya:
repo init --help

init

repo init -u url [options]

Menginstal Repo di direktori saat ini. Hal ini menciptakan .repo/ direktori dengan repositori Git untuk kode sumber Repo dan standar file manifest Android.

Pilihan:

  • -u : Tentukan URL dari mana untuk mengambil repositori nyata. Manifest umum ditemukan di https://android.googlesource.com/platform/manifest .
  • -m : Pilih file manifest dalam repositori. Jika tidak ada nama manifest yang dipilih, defaultnya adalah default.xml .
  • -b : Tentukan revisi, yaitu, khususnya manifest-branch .

Catatan: Untuk semua perintah Repo tersisa, direktori kerja saat ini harus berupa direktori induk dari .repo/ atau subdirektori dari direktori induk.

sinkronisasi

repo sync [project-list]

Download perubahan baru dan update file yang bekerja di lingkungan setempat, pada dasarnya mencapai git fetch di semua repositori Git. Jika Anda menjalankan repo sync tanpa argumen, itu mensinkronisasikan file untuk semua proyek.

Ketika Anda menjalankan repo sync , ini adalah apa yang terjadi:

  • Jika proyek tidak pernah sinkron, 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 adalah setara dengan:

    git remote update
    git rebase origin/branch
    

    di mana branch adalah saat check-out cabang di direktori proyek lokal. Jika cabang lokal tidak melacak cabang di repositori jarak jauh, maka tidak ada sinkronisasi yang terjadi untuk proyek tersebut.

  • Jika Git rebase hasil operasi dalam menggabungkan konflik, gunakan perintah Git normal (misalnya, git rebase --continue ) untuk menyelesaikan konflik.

Setelah sukses menjalankan repo sync , kode dalam proyek-proyek tertentu adalah up to date dan disinkronisasikan dengan kode dalam repositori jauh.

Berikut adalah opsi utama. Lihat repo help sync untuk lebih:

  • -c : Ambil hanya cabang manifest saat ini dari server.

  • -d : Beralih ditentukan proyek kembali ke revisi nyata. Ini berguna jika proyek saat ini berada di cabang topik, tetapi revisi manifes diperlukan untuk sementara.

  • -f : Lanjutkan dengan sinkronisasi proyek-proyek lain bahkan jika proyek gagal sync.

  • -j threadcount : Split sync di thread selesai lebih cepat. Pastikan Anda tidak membebani mesin Anda - biarkan beberapa CPU dicadangkan untuk tugas lain. Untuk melihat jumlah CPU yang tersedia, jalankan pertama: nproc --all

  • -q : Jalankan diam-diam dengan menekan pesan status.

  • -s : Sync untuk membangun baik dikenal sebagai ditentukan oleh manifest-server elemen dalam manifest saat ini.

mengunggah

repo upload [project-list]

Untuk proyek yang ditentukan, Repo membandingkan cabang lokal dengan cabang jarak jauh yang diperbarui selama sinkronisasi Repo terakhir. Repo meminta Anda untuk memilih satu atau lebih cabang yang belum diunggah untuk ditinjau.

Semua komit pada cabang yang dipilih kemudian ditransmisikan ke Gerrit melalui koneksi HTTPS. Anda perlu mengonfigurasi kata sandi HTTPS untuk mengaktifkan otorisasi pengunggahan. Kunjungi Password Generator untuk menghasilkan sepasang username / password baru untuk menggunakan lebih HTTPS.

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

Jika Anda menjalankan repo upload tanpa argumen, ia mencari semua proyek untuk perubahan untuk meng-upload.

Untuk mengedit perubahan setelah mereka telah diupload, menggunakan alat seperti git rebase -i atau git commit --amend untuk memperbarui komit lokal Anda. Setelah pengeditan Anda selesai:

  • Verifikasi bahwa cabang yang diperbarui adalah cabang yang saat ini diperiksa.
  • Untuk setiap komit dalam seri, 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 replacments
    # Insert change numbers in the brackets to add a new patch set.
    # To create a new change record, leave the brackets empty.
    

Setelah unggahan selesai, perubahan memiliki set tambalan tambahan.

Jika Anda ingin meng-upload hanya saat diperiksa cabang Git, menggunakan bendera --current-branch (atau --cbr untuk pendek).

berbeda

repo diff [project-list]

Menunjukkan perubahan yang luar biasa antara komit dan pohon bekerja 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 men-download perubahan 23.823 ke dalam direktori Platform / build:

repo download platform/build 23823

Menjalankan repo sync menghapus semua komit yang diambil dengan repo download . Atau Anda dapat memeriksa cabang terpencil menggunakan git checkout m/master .

Catatan: Ada replikasi penundaan untuk semua server di seluruh dunia, jadi ada mirroring lag sedikit antara saat perubahan terlihat di web di Gerrit dan ketika repo download dapat menemukan perubahan bagi semua pengguna.

untuk semua

repo forall [project-list] -c command

Mengeksekusi perintah shell yang diberikan di setiap proyek. Variabel lingkungan tambahan berikut yang dibuat tersedia oleh repo forall :

  • REPO_PROJECT diatur ke nama yang unik proyek.

  • REPO_PATH adalah path relatif ke akar klien.

  • REPO_REMOTE adalah nama dari sistem remote dari manifes.

  • REPO_LREV adalah nama dari revisi dari manifes, diterjemahkan ke cabang pelacakan lokal. Gunakan ini jika Anda perlu meneruskan revisi manifes ke perintah Git yang dieksekusi secara lokal.

  • REPO_RREV adalah nama dari revisi dari manifest, persis seperti yang tertulis dalam manifest.

Pilihan:

  • -c : Command dan argumen untuk mengeksekusi. Perintah ini dievaluasi melalui /bin/sh dan argumen setelah dilewatkan melalui sebagai parameter posisi shell.

  • -p : header Tampilkan proyek sebelum output dari perintah tertentu. Ini dicapai dengan mengikat pipa ke aliran stdin, stdout, dan sterr perintah, dan menyalurkan semua output ke aliran berkelanjutan yang ditampilkan dalam satu sesi pager.

  • -v : Tampilkan pesan perintah menulis ke stderr.

memangkas

repo prune [project-list]

Memangkas (menghapus) topik yang sudah digabungkan.

Mulailah

repo start
branch-name [project-list]

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

The BRANCH_NAME Argumen memberikan gambaran singkat dari perubahan Anda mencoba untuk membuat untuk proyek-proyek. Jika Anda tidak tahu, pertimbangkan untuk menggunakan nama default .

The project-list menspesifikasikan argumen yang proyek berpartisipasi dalam cabang topik ini.

Catatan: (.) Periode adalah istilah untuk proyek di direktori kerja saat ini.

status

repo status [project-list]

Membandingkan pohon kerja dengan area pementasan (indeks) dan komit terbaru pada cabang ini (HEAD) di setiap proyek yang ditentukan. Menampilkan garis ringkasan untuk setiap file di mana ada perbedaan antara ketiga status ini.

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

Di kolom pertama, huruf besar menunjukkan bagaimana staging area berbeda dari kondisi commit terakhir.

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

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

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

Menangani kesalahan repo

git reflog

repo start branch-name

git merge commit-id

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.