Tham khảo lệnh Repo (original) (raw)

Repo bổ sung cho Git bằng cách đơn giản hoá công việc trên nhiều kho lưu trữ. Để biết nội dung giải thích về mối quan hệ giữa Repo và Git, hãy xem phần Công cụ kiểm soát nguồn. Để biết thêm thông tin chi tiết về Repo, hãy xem Repo README

Việc sử dụng kho lưu trữ có dạng như sau:

repo command options

Các phần tử không bắt buộc được hiển thị trong dấu ngoặc vuông []. Ví dụ: nhiều lệnh lấy project-list làm đối số. Bạn có thể chỉ định project-list dưới dạng danh sách tên hoặc danh sách đường dẫn đến các thư mục nguồn cục bộ cho các dự án:

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

AI trợ giúp

repo help

Cung cấp thông tin trợ giúp về lệnh repo. Bạn có thể xem thông tin chi tiết về một lệnh Repo cụ thể bằng cách chỉ định một lệnh làm tuỳ chọn:

repo help command

Ví dụ: lệnh sau đây sẽ cho ra nội dung mô tả và danh sách các tuỳ chọn cho lệnh init:

repo help init

Hoặc để chỉ xem danh sách các lựa chọn có sẵn cho một lệnh, hãy chạy:

repo command --help

Ví dụ:

repo init --help

init

repo init -u url [options]

Cài đặt Repo trong thư mục hiện tại. Lệnh này tạo một thư mục .repo/ có các kho lưu trữ Git cho mã nguồn Repo và các tệp kê khai Android tiêu chuẩn.

Tuỳ chọn:

đồng bộ hóa

repo sync [project-list]

Tải các thay đổi mới xuống và cập nhật các tệp đang hoạt động trong môi trường cục bộ của bạn, về cơ bản là hoàn thành git fetch trên tất cả các kho lưu trữ Git. Nếu bạn chạy repo sync mà không có đối số, thì lệnh này sẽ đồng bộ hoá các tệp cho tất cả dự án.

Khi bạn chạy repo sync, những điều sau sẽ xảy ra:

Sau khi chạy repo sync thành công, mã trong các dự án được chỉ định sẽ được cập nhật và đồng bộ hoá với mã trong kho lưu trữ từ xa.

Các lựa chọn chính:

Để xem các lựa chọn khác, hãy chạy repo help sync.

tải lên

repo upload [project-list]

Tải các thay đổi lên máy chủ xem xét. Đối với các dự án đã chỉ định, Repo sẽ so sánh các nhánh cục bộ với các nhánh từ xa được cập nhật trong lần đồng bộ hoá Repo gần đây nhất. Repo sẽ nhắc bạn chọn một hoặc nhiều nhánh chưa được tải lên để xem xét.

Sau đó, tất cả các cam kết trên các nhánh đã chọn sẽ được truyền đến Gerrit qua một kết nối HTTPS. Bạn cần định cấu hình mật khẩu HTTPS để bật uỷ quyền tải lên. Để tạo một cặp tên người dùng/mật khẩu mới để sử dụng qua HTTPS, hãy truy cập vào Trình tạo mật khẩu.

Khi Gerrit nhận được dữ liệu đối tượng qua máy chủ của mình, hệ thống sẽ chuyển mỗi cam kết thành một thay đổi để người đánh giá có thể bình luận về một cam kết cụ thể. Để kết hợp một số cam kết điểm kiểm tra thành một cam kết duy nhất, hãy sử dụng git rebase -i trước khi chạy quy trình tải lên.

Nếu bạn chạy repo upload mà không có đối số, thì lệnh này sẽ tìm kiếm mọi dự án để tải các thay đổi lên.

Để chỉnh sửa các thay đổi sau khi tải lên, hãy sử dụng một công cụ như git rebase -i hoặc git commit --amend để cập nhật các cam kết cục bộ. Sau khi bạn chỉnh sửa xong:

# 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.  

Sau khi quá trình tải lên hoàn tất, các thay đổi sẽ có thêm một bộ bản vá.

Nếu bạn chỉ muốn tải nhánh Git hiện đang được kiểm xuất lên, hãy sử dụng cờ --current-branch (hoặc --cbr cho ngắn gọn).

Đối với các thay đổi liên quan, bạn nên giữ tất cả các CL trong cùng một chủ đề. Bạn có thể thêm tên chủ đề trong khi tải lên bằng --topic=TOPIC. Hoặc chỉ cần truyền -t để đặt tên chủ đề giống như tên nhánh cục bộ.

diff

repo diff [project-list]

Hiện các thay đổi chưa được xử lý giữa cam kết và cây làm việc bằng cách sử dụng git diff.

tải xuống

repo download target change

Tải thay đổi đã chỉ định xuống từ hệ thống đánh giá và cung cấp thay đổi đó trong thư mục đang làm việc trên máy của dự án.

Ví dụ: để tải change 23823 xuống thư mục platform/build của bạn:

repo download platform/build 23823

Việc chạy repo sync sẽ xoá mọi cam kết được truy xuất bằng repo download. Hoặc bạn có thể kiểm tra nhánh từ xa bằng cách sử dụng git checkout m/main.

forall

repo forall [project-list] -c command

Thực thi câu lệnh shell đã cho trong mỗi dự án. repo forall cung cấp các biến môi trường bổ sung sau:

Tuỳ chọn:

tỉa

repo prune [project-list]

Cắt tỉa (xoá) các chủ đề đã được hợp nhất.

start

repo start branch-name [project-list]

Bắt đầu một nhánh mới để phát triển, bắt đầu từ bản sửa đổi được chỉ định trong tệp kê khai.

Đối số BRANCH_NAME cung cấp nội dung mô tả ngắn về thay đổi mà bạn đang cố gắng thực hiện đối với các dự án. Nếu bạn không biết, hãy cân nhắc sử dụng tên default.

Đối số project-list chỉ định những dự án tham gia vào nhánh chủ đề này.

trạng thái

repo status [project-list]

So sánh cây làm việc với vùng dàn dựng (chỉ mục) và cam kết gần đây nhất trên nhánh này (HEAD) trong mỗi dự án được chỉ định. Hiển thị một dòng tóm tắt cho mỗi tệp có sự khác biệt giữa 3 trạng thái này.

Để chỉ xem trạng thái của nhánh hiện tại, hãy chạy repo status .. Thông tin trạng thái được liệt kê theo dự án. Đối với mỗi tệp trong dự án, một mã gồm 2 chữ cái sẽ được sử dụng.

Trong cột đầu tiên, một chữ cái viết hoa cho biết sự khác biệt giữa vùng dàn xếp và trạng thái được xác nhận gần đây nhất.

Chữ cái Ý nghĩa Mô tả
- Không có thay đổi Giống nhau trong phần đầu và chỉ mục
A Đã thêm Không có trong phần tử HEAD, có trong chỉ mục
T2 Ngày sửa đổi Trong phần đầu, được sửa đổi trong chỉ mục
D Đã xoá Trong phần tử HEAD, không có trong chỉ mục
R Đã đổi tên Không có trong HEAD, đường dẫn đã thay đổi trong chỉ mục
C Đã sao chép Không có trong HEAD, được sao chép từ một phần tử khác trong chỉ mục
T5 Đã thay đổi chế độ Nội dung giống nhau trong phần đầu và chỉ mục, chế độ đã thay đổi
U Chưa hợp nhất Xung đột giữa HEAD và chỉ mục; cần giải quyết

Trong cột thứ hai, một chữ cái viết thường cho biết sự khác biệt giữa thư mục đang hoạt động và chỉ mục.

Chữ cái Ý nghĩa Mô tả
- Mới/không xác định Không có trong chỉ mục, trong cây công việc
m Ngày sửa đổi Trong chỉ mục, trong cây công việc, đã sửa đổi
d Đã xoá Trong chỉ mục, không có trong cây công việc

Xử lý lỗi 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 .

Lỗi repo: error: no branches ready for upload xuất hiện khi lệnh repo start không chạy khi bắt đầu phiên. Để khôi phục, bạn có thể kiểm tra mã nhận dạng cam kết, bắt đầu một nhánh mới rồi hợp nhất nhánh đó.

Cấu trúc kho lưu trữ Git

Đối với Android, các kho lưu trữ Git (dự án) không được lồng nhau. Mỗi dự án được liên kết với một thư mục cụ thể trong cây nguồn và tất cả các thư mục con cũng như tệp trong thư mục đó đều thuộc cùng một dự án. Tránh sử dụng tính năng git submodule của Repo để phát triển Android.