Repo melengkapi Git dengan menyederhanakan pekerjaan di beberapa repositori. Untuk penjelasan hubungan antara Repo dan Git, lihat Alat kontrol sumber. Untuk selengkapnya detail tentang Repo, lihat README Repositori
Penggunaan repo mengambil bentuk berikut:
repo command options
Elemen opsional ditampilkan dalam tanda kurung []. Misalnya, banyak perintah mengambil project-list sebagai argumen. Anda dapat menentukan project-list sebagai daftar nama atau daftar jalur ke direktori sumber lokal untuk project:
repo sync [project0 project1 ... projectn]
repo sync [/path/to/project0 ... /path/to/projectn]
help
repo help
Memberikan bantuan pada perintah repo
. Anda dapat melihat informasi terperinci tentang
perintah Repo tertentu yang menentukan perintah sebagai opsi:
repo help command
Misalnya, perintah berikut menghasilkan deskripsi dan daftar opsi
untuk perintah init
:
repo help init
Atau, untuk melihat daftar opsi yang tersedia saja untuk suatu perintah, jalankan:
repo command --help
Contoh:
repo init --help
init
repo init -u url [options]
Menginstal Repo di direktori saat ini. Perintah ini membuat .repo/
dengan repositori Git untuk kode sumber Repo dan
file manifes Android standar.
Opsi:
-u
: Menentukan URL tempat mengambil repositori manifes. Hal yang umum manifes ditemukan dihttps://android.googlesource.com/platform/manifest
.-m
: Memilih file manifes dalam repositori. Jika tidak ada nama manifes yang Jika dipilih, defaultnya adalahdefault.xml
.-b
: Menentukan revisi, yaitu manifest-branch tertentu.
sinkronkan
repo sync [project-list]
Mendownload perubahan baru dan memperbarui file yang berfungsi di lingkungan lokal Anda,
pada dasarnya mereka menyelesaikan git fetch
di semua repositori Git. Jika Anda menjalankan
repo sync
tanpa argumen, tindakan ini akan menyinkronkan file untuk semua project.
Saat Anda menjalankan repo sync
, berikut yang akan terjadi:
Jika project belum pernah disinkronkan,
repo sync
setara dengangit clone
; semua cabang di repositori jarak jauh disalin ke jaringan lokal project.Jika project telah disinkronkan sebelumnya,
repo sync
akan setara menjadi:git remote update git rebase origin/branch
Dengan branch adalah cabang yang check-out saat ini di lokal project. Jika cabang lokal tidak melacak cabang di remote repositori, maka tidak ada sinkronisasi yang terjadi untuk project tersebut.
Setelah repo sync
berhasil dijalankan, kode dalam project yang ditentukan akan
sudah diperbarui dan disinkronkan dengan kode
di repositori jarak jauh.
Opsi utama:
-c
: Hanya mengambil cabang manifes saat ini dari server.-d
: Mengalihkan project yang ditentukan kembali ke revisi manifes. Opsi ini membantu jika project berada di cabang topik, tetapi revisi manifesnya diperlukan sementara waktu.-f
: Melanjutkan sinkronisasi project lain meskipun project gagal disinkronkan.threadcount
: Memisahkan sinkronisasi di seluruh thread untuk penyelesaian yang lebih cepat. Pastikan Anda tidak membuat mesin kewalahan - sisakan beberapa CPU disediakan untuk tugas-tugas lain. Untuk melihat jumlah CPU yang tersedia, jalankan terlebih dahulunproc --all
.-q
: Berjalanlah secara diam-diam dengan menyembunyikan pesan status.-s
: Menyinkronkan ke build bagus yang dikenal sebagaimana ditentukan oleh elemenmanifest-server
dalam manifes saat ini.
Untuk opsi lainnya, jalankan repo help sync
.
upload
repo upload [project-list]
Mengunggah perubahan ke server tinjauan. Untuk project yang ditentukan, Repo membandingkan cabang lokal ke cabang jarak jauh yang diperbarui selama sinkronisasi Repo terakhir. Repo meminta Anda untuk memilih satu atau beberapa cabang yang belum diupload untuk ditinjau.
Semua commit pada cabang yang dipilih kemudian ditransmisikan ke Gerrit melalui koneksi HTTPS. Anda harus mengonfigurasi sandi HTTPS untuk mengaktifkan upload otorisasi. Untuk menghasilkan pasangan nama pengguna/sandi baru yang akan digunakan melalui HTTPS, kunjungi Generator sandi.
Ketika menerima data objek melalui servernya, Gerrit mengubah tiap
berkomitmen untuk suatu perubahan sehingga peninjau
dapat mengomentari commit tertentu.
Untuk menggabungkan beberapa commit checkpoint menjadi satu commit, gunakan git rebase -i
sebelum Anda menjalankan upload.
Jika Anda menjalankan repo upload
tanpa argumen, semua project akan ditelusuri untuk
perubahan untuk diupload.
Untuk mengedit perubahan setelah diupload, gunakan alat seperti git rebase -i
atau
git commit --amend
untuk memperbarui commit lokal Anda. Setelah hasil edit
selesai:
- Verifikasi bahwa cabang yang diperbarui adalah cabang yang diperiksa saat ini.
- Gunakan
repo upload --replace PROJECT
untuk membuka editor pencocokan perubahan. Untuk setiap commit 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 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, perubahan memiliki kumpulan patch tambahan.
Jika Anda hanya ingin mengupload cabang Git yang sedang diperiksa, gunakan flag
--current-branch
(atau disingkat --cbr
).
perbedaan
repo diff [project-list]
Menampilkan perubahan yang belum diselesaikan antara commit dan hierarki kerja menggunakan
git diff
.
download
repo download target change
Mendownload perubahan yang ditentukan dari sistem peninjauan dan menyediakannya di direktori kerja lokal project Anda.
Misalnya, untuk mendownload
ubah 23823 menjadi
Direktori platform/build
:
repo download platform/build 23823
Menjalankan repo sync
akan menghapus commit yang diambil dengan repo download
. Atau Anda
dapat melihat cabang jarak jauh menggunakan git checkout m/main
.
untuk semua
repo forall [project-list] -c command
Mengeksekusi perintah shell yang diberikan di setiap project. Tambahan berikut
variabel lingkungan disediakan oleh repo forall
:
REPO_PROJECT
ditetapkan ke nama unik project.REPO_PATH
adalah jalur yang terkait dengan root klien.REPO_REMOTE
adalah nama sistem jarak jauh dari manifes.REPO_LREV
adalah nama revisi dari manifes, yang diterjemahkan menjadi cabang pelacakan lokal. Gunakan variabel ini jika Anda perlu meneruskan manifes revisi terhadap perintah Git yang dijalankan secara lokal.REPO_RREV
adalah nama revisi dari manifes, persis seperti yang tertulis dalam manifes.
Opsi:
-c
: Perintah dan argumen yang akan dieksekusi. Perintah dievaluasi melalui/bin/sh
dan argumen apa pun setelah diteruskan sebagai posisi shell parameter.-p
: Menampilkan header project sebelum output perintah yang ditentukan. Ini adalah dicapai dengan mengikat pipe ke aliran stdin, stdout, dan sterr perintah, dan menyisipkan semua output ke dalam streaming berkelanjutan yang ditampilkan dalam satu halaman sesi.-v
: Menampilkan pesan yang ditulis perintah ke stderr.
pangkas
repo prune [project-list]
Memangkas (menghapus) topik yang sudah digabungkan.
start
repo start branch-name [project-list]
Memulai cabang baru untuk pengembangan, mulai dari revisi yang ditetapkan dalam manifes.
Argumen BRANCH_NAME
memberikan deskripsi singkat tentang perubahan yang sedang Anda
lakukan dalam proyek. Jika Anda tidak tahu, pertimbangkan untuk menggunakan nama
default
.
Argumen project-list
menentukan project mana yang berpartisipasi dalam topik ini
.
status
repo status [project-list]
Membandingkan pohon kerja dengan area staging (indeks) dan commit terbaru di cabang ini (HEAD) di setiap project yang ditentukan. Menampilkan baris ringkasan untuk setiap file yang memiliki perbedaan di antara ketiga status ini.
Untuk melihat status cabang saat ini saja, jalankan repo status .
. Status
informasi yang dicantumkan
berdasarkan proyek. Untuk setiap file dalam proyek, dua huruf dua huruf
kode yang digunakan.
Di kolom pertama, huruf besar menunjukkan perbedaan area staging dari status terakhir yang di-commit.
Letter | Arti | Deskripsi |
---|---|---|
- | Tidak ada perubahan | Sama di HEAD dan indeks |
A | Ditambahkan | Tidak di HEAD, dalam indeks |
S | Diubah | Di HEAD, diubah dalam indeks |
D | Dihapus | Di HEAD, bukan di indeks |
R | Nama telah diganti | Tidak di HEAD, jalur diubah di indeks |
C | Disalin | Tidak di HEAD, disalin dari yang lain dalam indeks |
T | Mode diubah | Konten yang sama di HEAD dan indeks, mode diubah |
U | Dipisahkan | Konflik antara HEAD dan indeks; resolusi yang diperlukan |
Di kolom kedua, huruf kecil menunjukkan perbedaan direktori kerja dengan pada indeks.
Letter | Arti | Deskripsi |
---|---|---|
- | Baru/tidak diketahui | Tidak ada dalam indeks, di hierarki kerja |
m | Diubah | Dalam indeks, di hierarki kerja, dimodifikasi |
d | Dihapus | Dalam indeks, bukan di hierarki kerja |
Menangani error 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 .
Error repo: error: no branches ready for upload
muncul saat perintah
repo start
tidak berjalan pada awal sesi. Untuk memulihkan, Anda dapat memeriksa
ID commit, memulai
cabang baru lalu menggabungkannya.