Google is committed to advancing racial equity for Black communities. See how.
Ta strona została przetłumaczona przez Cloud Translation API.
Switch to English

Opis poleceń dotyczących repo

Repo uzupełnia Git, upraszczając pracę w wielu repozytoriach. Aby uzyskać wyjaśnienie związku między repozytorium a Git, zobacz Narzędzia kontroli źródła . Więcej informacji na temat repozytorium można znaleźć w pliku README dotyczącym repozytoriów .

Wykorzystanie repo przyjmuje następującą formę:

repo command options

Elementy opcjonalne przedstawiono w nawiasach []. Na przykład wiele poleceń przyjmuje project-list jako argument. Możesz określić project-list jako listę nazw lub listę ścieżek do lokalnych katalogów źródłowych dla projektów:

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

Wsparcie

Ta strona przedstawia jedynie kluczowe opcje. Szczegółowe informacje można znaleźć w pomocy wiersza poleceń. Po zainstalowaniu Repo najnowszą dokumentację można znaleźć, zaczynając od podsumowania wszystkich poleceń, uruchamiając:

repo help

Możesz zobaczyć szczegółowe informacje o dowolnym poleceniu, uruchamiając to w drzewie repozytoriów:

repo help command

Na przykład następujące polecenie daje opis i listę opcji dla argumentu init Repo, który inicjuje Repo w bieżącym katalogu. (Zobacz init, aby uzyskać szczegółowe informacje).

repo help init

Lub aby zobaczyć tylko listę dostępnych opcji, uruchom:

repo command --help
Na przykład:
repo init --help

w tym

repo init -u url [options]

Instaluje repozytorium w bieżącym katalogu. Spowoduje to .repo/ katalogu .repo/ z repozytoriami Git dla kodu źródłowego Repo i standardowych plików manifestu systemu Android.

Opcje:

  • -u : Określ adres URL, z którego należy pobrać repozytorium manifestu. Wspólny manifest można znaleźć pod https://android.googlesource.com/platform/manifest .
  • -m : Wybierz plik manifestu w repozytorium. Jeśli nie wybrano nazwy manifestu, domyślną nazwą jest default.xml .
  • -b : Określ wersję, czyli określoną manifest-branch .

Uwaga: dla wszystkich pozostałych poleceń Repo bieżący katalog roboczy musi być katalogiem nadrzędnym .repo/ lub podkatalogiem katalogu nadrzędnego.

sync

repo sync [project-list]

Pobiera nowe zmiany i aktualizuje pliki robocze w środowisku lokalnym, zasadniczo wykonując git fetch we wszystkich repozytoriach Git. Jeśli uruchomisz repo sync bez argumentów, zsynchronizuje pliki dla wszystkich projektów.

Po uruchomieniu repo sync dzieje się tak:

  • Jeśli projekt nigdy nie został zsynchronizowany, synchronizacja repo sync jest równoważna git clone . Wszystkie gałęzie w repozytorium zdalnym są kopiowane do lokalnego katalogu projektu.

  • Jeśli projekt został wcześniej zsynchronizowany, repo sync jest równoważna z:

    git remote update
    git rebase origin/branch
    

    gdzie branch jest aktualnie wyewidencjonowaną gałęzią w lokalnym katalogu projektu. Jeśli lokalna gałąź nie śledzi gałęzi w repozytorium zdalnym, wówczas dla projektu nie następuje synchronizacja.

  • Jeśli operacja Git rebase powoduje konflikty scalania, użyj normalnych poleceń Git (na przykład git rebase --continue ), aby rozwiązać konflikty.

Po pomyślnym uruchomieniu repo sync kod w określonych projektach jest aktualny i synchronizowany z kodem w zdalnym repozytorium.

Oto kluczowe opcje. Zobacz repo help sync dotyczącą repo help sync uzyskać więcej informacji:

  • -c : Pobierz tylko bieżącą gałąź manifestu z serwera.

  • -d : Przełącz określone projekty z powrotem do wersji manifestu. Jest to przydatne, jeśli projekt znajduje się obecnie w gałęzi tematu, ale zmiana manifestu jest tymczasowo potrzebna.

  • -f : kontynuuj synchronizację innych projektów, nawet jeśli projekt nie zostanie zsynchronizowany.

  • -j threadcount : Podziel synchronizację między wątkami, aby przyspieszyć ukończenie. Upewnij się, że nie przeciążasz swojej maszyny, pozostawiając trochę procesora zarezerwowanego dla innych zadań. Aby zobaczyć liczbę dostępnych procesorów, najpierw uruchom: nproc --all

  • -q : Działa cicho, pomijając komunikaty o stanie.

  • -s : Synchronizuj ze znaną dobrą kompilacją określoną przez element manifest-server w bieżącym manifeście.

Przekazać plik

repo upload [project-list]

W przypadku określonych projektów usługa Repo porównuje oddziały lokalne z oddziałami zdalnymi zaktualizowanymi podczas ostatniej synchronizacji repozytorium. Repo wyświetla monit o wybranie jednej lub więcej gałęzi, które nie zostały przesłane do przeglądu.

Wszystkie zatwierdzenia wybranych gałęzi są następnie przesyłane do Gerrit za pośrednictwem połączenia HTTPS. Aby umożliwić autoryzację przesyłania, musisz skonfigurować hasło HTTPS. Odwiedź Generator haseł, aby wygenerować nową parę nazwa użytkownika / hasło do użytku przez HTTPS.

Kiedy Gerrit otrzymuje dane obiektu przez swój serwer, zmienia każde zatwierdzenie w zmianę, aby recenzenci mogli skomentować określone zatwierdzenie. Aby połączyć kilka zatwierdzeń punktów kontrolnych w jedno zatwierdzenie, użyj git rebase -i przed uruchomieniem przesyłania.

Jeśli uruchomisz repo upload bez argumentów, przeszukuje wszystkie projekty pod kątem zmian do przesłania.

Aby edytować zmiany po ich przesłaniu, użyj narzędzia takiego jak git rebase -i lub git commit --amend aby zaktualizować lokalne zatwierdzenia. Po zakończeniu edycji:

  • Sprawdź, czy zaktualizowana gałąź jest aktualnie wyewidencjonowaną gałęzią.
  • Dla każdego zatwierdzenia w serii wprowadź identyfikator zmiany Gerrit w nawiasach:
    # 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.
    

Po zakończeniu przesyłania zmiany mają dodatkowy zestaw poprawek.

Jeśli chcesz przesłać tylko aktualnie --current-branch Git, użyj flagi --current-branch (lub w skrócie --cbr ).

różn

repo diff [project-list]

Pokazuje zaległe zmiany między zatwierdzeniem a drzewem roboczym za pomocą git diff .

Ściągnij

repo download target change

Pobiera określoną zmianę z systemu recenzji i udostępnia ją w lokalnym katalogu roboczym projektu.

Na przykład, aby pobrać zmianę 23823 do katalogu platforma / kompilacja:

repo download platform/build 23823

Uruchomienie repo sync usuwa wszelkie zatwierdzenia pobrane podczas pobierania repo download . Lub możesz sprawdzić zdalną gałąź za pomocą git checkout m/master .

Uwaga: występują opóźnienia w replikacji na wszystkich serwerach na całym świecie, więc między momentem, w którym zmiana jest widoczna w Internecie w Gerrit, a momentem, w którym repo download może znaleźć zmianę dla wszystkich użytkowników, występuje niewielkie opóźnienie w tworzeniu kopii lustrzanej.

dla wszystkich

repo forall [project-list] -c command

Wykonuje podane polecenie powłoki w każdym projekcie. Następujące dodatkowe zmienne środowiskowe są udostępniane przez repo forall :

  • REPO_PROJECT jest ustawiony na unikalną nazwę projektu.

  • REPO_PATH to ścieżka względem katalogu głównego klienta.

  • REPO_REMOTE to nazwa zdalnego systemu z manifestu.

  • REPO_LREV to nazwa wersji z manifestu przetłumaczona na lokalną gałąź śledzenia. Użyj tego, jeśli chcesz przekazać wersję manifestu do lokalnie wykonywanego polecenia Git.

  • REPO_RREV to nazwa wersji z manifestu, dokładnie taka, jak zapisana w manifeście.

Opcje:

  • -c : Polecenie i argumenty do wykonania. Polecenie jest oceniane przez /bin/sh i wszelkie argumenty po jego przekazaniu jako parametry pozycyjne powłoki.

  • -p : Pokaż nagłówki projektu przed wyjściem określonego polecenia. Osiąga się to poprzez powiązanie potoków ze strumieniami stdin, stdout i sterr polecenia i przekierowanie wszystkich danych wyjściowych do ciągłego strumienia, który jest wyświetlany w jednej sesji pagera.

  • -v : Pokazuje komunikaty, które polecenie zapisuje na stderr.

suszona śliwka

repo prune [project-list]

Przycina (usuwa) tematy, które zostały już scalone.

początek

repo start
branch-name [project-list]

Rozpoczyna nową gałąź do programowania, zaczynając od wersji określonej w manifeście.

Argument BRANCH_NAME zawiera krótki opis zmiany, którą próbujesz wprowadzić w projektach. Jeśli nie wiesz, rozważ użycie nazwy default .

Argument project-list projektów określa, które projekty uczestniczą w tej gałęzi tematu.

Uwaga: kropka (.) To skrót nazwy projektu w bieżącym katalogu roboczym.

status

repo status [project-list]

Porównuje drzewo robocze z obszarem pomostowym (indeksem) i najnowszym zatwierdzeniem w tej gałęzi (HEAD) w każdym określonym projekcie. Wyświetla wiersz podsumowania dla każdego pliku, w przypadku którego istnieje różnica między tymi trzema stanami.

Aby zobaczyć stan tylko bieżącej gałęzi, uruchom repo status . Informacje o statusie są wyświetlane według projektu. Dla każdego pliku w projekcie używany jest dwuliterowy kod.

W pierwszej kolumnie wielka litera wskazuje, jak obszar przemieszczania różni się od ostatniego zatwierdzonego stanu.

List Znaczenie Opis
- Brak zmiany To samo w HEAD i indeksie
ZA Dodany Nie w HEAD, w indeksie
M Zmodyfikowano W HEAD, zmodyfikowany w index
re Usunięto W HEAD, nie w indeksie
R Zmieniona nazwa Nie w HEAD, zmieniono ścieżkę w indeksie
do Skopiowano Nie w HEAD, skopiowane z innego w indeksie
T Tryb zmieniony Ta sama treść w HEAD i indeksie, zmieniono tryb
U Rozłączone Konflikt między HEAD a indeksem; wymagana rozdzielczość

W drugiej kolumnie mała litera wskazuje, czym różni się katalog roboczy od indeksu.

List Znaczenie Opis
- Nowy / nieznany Nie w indeksie, w drzewie roboczym
m Zmodyfikowano W indeksie, w drzewie roboczym, zmodyfikowano
re Usunięto W indeksie, a nie w drzewie roboczym