Google cam kết thúc đẩy công bằng chủng tộc cho Cộng đồng người da đen. Xem cách thực hiện.

Tham chiếu lệnh Repo

Repo bổ sung cho Git bằng cách đơn giản hóa công việc trên nhiều kho. Xem Source Control Công cụ cho một lời giải thích về mối quan hệ giữa Repo và Git. Để biết thêm chi tiết về Repo, xem Repo README .

Việc sử dụng repo có dạng sau:

repo command options

Các phần tử tùy chọn được hiển thị trong dấu ngoặc []. Ví dụ, nhiều lệnh đưa project-list như một cuộc tranh cãi. Bạn có thể chỉ định project-list như một danh sách tên hoặc một danh sách các đường dẫn đến thư mục nguồn địa phương cho các dự án:

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

Cứu giúp

Trang này chỉ làm nổi bật các tùy chọn chính. Xem trợ giúp về dòng lệnh để biết đầy đủ chi tiết. Khi Repo được cài đặt, bạn có thể tìm thấy tài liệu mới nhất bắt đầu bằng bản tóm tắt tất cả các lệnh bằng cách chạy:

repo help

Bạn có thể xem thông tin chi tiết về bất kỳ lệnh nào bằng cách chạy lệnh này trong cây Repo:

repo help command

Ví dụ, lệnh sau đây mang lại một mô tả và danh sách các tùy chọn cho init đối số của Repo, mà khởi Repo trong thư mục hiện hành. (Xem init để biết chi tiết.)

repo help init

Hoặc để chỉ xem danh sách các tùy chọn có sẵn, hãy chạy:

repo command --help
Ví dụ:
repo init --help

trong đó

repo init -u url [options]

Cài đặt Repo trong thư mục hiện tại. Điều này tạo ra một .repo/ thư mục với kho Git cho mã nguồn Repo và tiêu chuẩn file manifest Android.

Tùy chọn:

  • -u : Chỉ định một URL mà từ đó để lấy một kho manifest. Manifest thường được tìm thấy ở https://android.googlesource.com/platform/manifest .
  • -m : Chọn một file manifest trong kho. Nếu không có tên manifest được chọn, mặc định là default.xml .
  • -b : Chỉ định sửa đổi, đó là một đặc biệt manifest-branch .

Lưu ý: Đối với tất cả các lệnh Repo còn lại, thư mục làm việc hiện tại hoặc phải là thư mục cha của .repo/ hoặc một thư mục con của thư mục cha.

đồng bộ hóa

repo sync [project-list]

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

Khi bạn chạy repo sync , đây là những gì sẽ xảy ra:

  • Nếu dự án chưa bao giờ được đồng bộ, sau đó repo sync là tương đương với git clone . Tất cả các nhánh trong kho lưu trữ từ xa được sao chép vào thư mục dự án cục bộ.

  • Nếu dự án đã được đồng bộ trước, sau đó repo sync là tương đương với:

    git remote update
    git rebase origin/branch
    

    nơi branch là chi nhánh hiện check-out trong thư mục dự án của địa phương. Nếu chi nhánh cục bộ không theo dõi một chi nhánh trong kho lưu trữ từ xa, thì dự án sẽ không xảy ra đồng bộ hóa.

  • Nếu Git rebase kết quả hoạt động trong xung đột nhập, sử dụng các lệnh Git bình thường (ví dụ, git rebase --continue ) để giải quyết mâu thuẫn.

Sau khi chạy thành công repo sync , các mã trong dự án quy định được cập nhật và đồng bộ hóa với các mã trong kho từ xa.

Đây là các tùy chọn chính. Xem repo help sync để biết thêm:

  • -c : Fetch chỉ chi nhánh manifest hiện từ máy chủ.

  • -d : dự án Chuyển định trở lại với phiên bản manifest. Điều này hữu ích nếu dự án hiện đang ở một nhánh chủ đề, nhưng tạm thời cần sửa đổi tệp kê khai.

  • -f : Tiến hành đồng bộ các dự án khác ngay cả khi một dự án thất bại trong việc đồng bộ hóa.

  • -j threadcount : Tách các đồng bộ trên đề để hoàn thành nhanh hơn. Đảm bảo rằng bạn không làm cho máy của mình bị choáng ngợp - hãy để lại một số CPU dành riêng cho các tác vụ khác. Để nhìn thấy số lượng CPU có sẵn, chạy đầu tiên: nproc --all

  • -q : Chạy nhẹ nhàng bằng cách ức chế các thông điệp trạng thái.

  • -s : Sync để một tiếng build tốt theo quy định của manifest-server yếu tố trong biểu hiện hiện tại.

tải lên

repo upload [project-list]

Đối với các dự án được chỉ định, Repo 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ộ Repo gần đây nhất. Repo nhắc bạn chọn một hoặc nhiều nhánh chưa được tải lên để xem xét.

Tất cả các cam kết trên các nhánh đã chọn sau đó sẽ được truyền tới Gerrit qua kết nối HTTPS. Bạn cần định cấu hình mật khẩu HTTPS để cho phép tải lên. Truy cập vào Password Generator để tạo ra một cặp username / password mới để sử dụng qua HTTPS.

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

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

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

  • Xác minh rằng chi nhánh đã cập nhật là chi nhánh hiện đã được kiểm tra.
  • Đối với mỗi cam kết trong chuỗi, hãy nhập ID thay đổi Gerrit bên trong dấu ngoặc:
    # 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.
    

Sau khi tải lên hoàn tất, các thay đổi có một bộ bản vá bổ sung.

Nếu bạn muốn tải lên chỉ hiện kiểm tra ra chi nhánh Git, sử dụng cờ --current-branch (hoặc --cbr cho ngắn).

khác biệt

repo diff [project-list]

Chương trình thay đổi nổi bật giữa cam và cây làm việc sử dụng git diff .

Tải xuống

repo download target change

Tải xuống thay đổi được chỉ định từ hệ thống đánh giá và làm cho nó có sẵn trong thư mục làm việc cục bộ của dự án của bạn.

Ví dụ, để tải về thay đổi 23.823 vào thư mục nền tảng / xây dựng của bạn:

repo download platform/build 23823

Chạy repo sync loại bỏ bất kỳ cam kết truy xuất với repo download . Hoặc bạn có thể kiểm tra các chi nhánh từ xa sử dụng git checkout m/master .

Lưu ý: Có sao chép chậm trễ cho tất cả các máy chủ trên toàn thế giới, vì vậy có một độ trễ mirroring nhỏ giữa khi một sự thay đổi là hiển thị trên web trong Gerrit và khi repo download có thể tìm thấy sự thay đổi cho tất cả người dùng.

cho tất cả

repo forall [project-list] -c command

Thực hiện lệnh shell đã cho trong mỗi dự án. Các biến môi trường bổ sung sau đây được tạo sẵn bởi repo forall :

  • REPO_PROJECT được đặt tên duy nhất của dự án.

  • REPO_PATH là đường dẫn tương đối đến thư mục gốc của khách hàng.

  • REPO_REMOTE là tên của hệ thống từ xa từ manifest.

  • REPO_LREV là tên của phiên bản từ manifest, dịch sang một chi nhánh theo dõi cục bộ. Sử dụng điều này nếu bạn cần chuyển bản sửa đổi tệp kê khai sang lệnh Git được thực thi cục bộ.

  • REPO_RREV là tên của phiên bản từ manifest, chính xác như được viết trong biểu hiện.

Tùy chọn:

  • -c : Command và lập luận để thực thi. Các lệnh được đánh giá thông qua /bin/sh và bất kỳ đối số sau khi nó được chuyển qua như tham số vị trí vỏ.

  • -p : tiêu đề Hiện dự án trước khi đầu ra của lệnh chỉ định. Điều này đạt được bằng cách liên kết các đường ống với các luồng stdin, stdout và sterr của lệnh, và chuyển tất cả đầu ra vào một luồng liên tục được hiển thị trong một phiên máy nhắn tin duy nhất.

  • -v : Hiển thị thông điệp lệnh ghi vào stderr.

tỉa cành

repo prune [project-list]

Prunes (xóa) các chủ đề đã được hợp nhất.

bắt đầu

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.

Các BRANCH_NAME luận cung cấp một mô tả ngắn về những thay đổi mà bạn đang cố gắng để làm cho các dự án. Nếu bạn không biết, hãy xem xét sử dụng tên default .

Các project-list quy định cụ thể lập luận mà các dự án tham gia này chi nhánh chủ đề.

Lưu ý: (.) Giai đoạn A là viết tắt cho các dự án trong thư mục làm việc hiện tại.

trạng thái

repo status [project-list]

So sánh cây làm việc với khu vực 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ị dòng tóm tắt cho mỗi tệp nơi có sự khác biệt giữa ba trạng thái này.

Để xem trạng thái của chỉ chi nhánh hiện nay, 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 hai ký tự được sử dụng.

Trong cột đầu tiên, một chữ cái viết hoa cho biết khu vực tổ chức khác với trạng thái cam kết cuối cùng như thế nào.

Thư Nghĩa Sự miêu tả
- Không thay đổi Giống nhau ở HEAD và chỉ mục
MỘT Thêm Không có trong HEAD, trong chỉ mục
NS Đã sửa đổi Trong HEAD, được sửa đổi trong chỉ mục
NS Đã xóa Trong HEAD, không phải trong chỉ mục
NS Đã đổi tên Không có trong HEAD, đường dẫn đã thay đổi trong chỉ mục
NS Đã sao chép Không có trong HEAD, được sao chép từ người khác trong chỉ mục
NS Chế độ đã thay đổi Nội dung giống nhau trong HEAD và chỉ mục, chế độ đã thay đổi
U Chưa hợp nhất Xung đột giữa HEAD và chỉ mục; độ phân giải yêu cầu

Trong cột thứ hai, một chữ cái viết thường cho biết thư mục làm việc khác với chỉ mục như thế nào.

Thư Nghĩa Sự miêu tả
- Mới / chưa biết Không có trong chỉ mục, trong cây công việc
NS Đã sửa đổi Trong chỉ mục, trong cây công việc, đã sửa đổi
NS Đã xóa Trong chỉ mục, không phải 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 .

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