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 --helpMisalnya:
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 dihttps://android.googlesource.com/platform/manifest
. -
-m
: Pilih file manifest dalam repositori. Jika tidak ada nama manifest yang dipilih, defaultnya adalahdefault.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 dengangit 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 unggah. 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 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.