Google jest zaangażowany w promowanie równości rasowej dla społeczności czarnych. Zobacz jak.
Ta strona została przetłumaczona przez Cloud Translation API.
Switch to English

Przepływ pracy kontroli źródła

Praca z kodem Androida wymaga użycia Git (systemu kontroli wersji open source) i Repo (stworzonego przez Google narzędzia do zarządzania repozytoriami, które działa na Git). Zobacz Narzędzia kontroli źródła, aby uzyskać wyjaśnienie relacji między repozytorium i Git oraz linki do dokumentacji pomocniczej dla każdego narzędzia.

Pływ

Tworzenie systemu Android obejmuje następujący podstawowy przepływ pracy:

  1. Rozpocznij nową gałąź tematyczną za pomocą funkcji repo start .
  2. Edytuj pliki.
  3. Przeprowadź zmiany za pomocą git add .
  4. Zatwierdź zmiany za pomocą git commit .
  5. Prześlij zmiany na serwer recenzji za pomocą repo upload .

Zadania

Praca z Git i Repo w repozytoriach kodu systemu Android obejmuje wykonywanie następujących typowych zadań.

Komenda Opis
repo init Inicjuje nowego klienta.
repo sync Synchronizuje klienta z repozytoriami.
repo start Rozpoczyna nową gałąź.
repo status Pokazuje stan aktualnej gałęzi.
repo upload Przesyła zmiany na serwer recenzji.
git add Ustawia pliki.
git commit Zatwierdza pliki przemieszczane.
git branch Pokazuje aktualne gałęzie.
git branch [branch] Tworzy nową gałąź tematyczną.
git checkout [branch] Przełącza HEAD do określonej gałęzi.
git merge [branch] Łączy [branch] w bieżącą gałąź.
git diff Pokazuje różnicę zmian niestacjonarnych.
git diff --cached Pokazuje różnice w zainscenizowanych zmianach.
git log Pokazuje historię aktualnej branży.
git log m/[codeline].. Pokazuje zatwierdzenia, które nie są wypychane.

Aby uzyskać informacje o używaniu repozytorium do pobierania źródła, zobacz Pobieranie źródła i informacje o poleceniu repo .

Synchronizacja klientów

Aby zsynchronizować pliki dla wszystkich dostępnych projektów:

repo sync

Aby zsynchronizować pliki dla wybranych projektów:

repo sync PROJECT0 PROJECT1 ... PROJECTN

Tworzenie gałęzi tematycznych

Rozpocznij gałąź tematyczną w lokalnym środowisku roboczym za każdym razem, gdy zaczynasz zmianę, na przykład gdy zaczynasz pracę nad błędem lub nową funkcją. Gałąź tematyczna nie jest kopią oryginalnych plików; jest to wskaźnik do konkretnego zatwierdzenia, co sprawia, że ​​tworzenie lokalnych gałęzi i przełączanie się między nimi jest lekką operacją. Używając gałęzi, możesz oddzielić jeden aspekt swojej pracy od innych. Ciekawy artykuł na temat korzystania z gałęzi tematów można znaleźć w sekcji Rozdzielanie gałęzi tematów .

Aby rozpocząć gałąź tematyczną za pomocą Repo, przejdź do projektu i uruchom:

repo start BRANCH_NAME .

Końcowa kropka (.) Reprezentuje projekt w bieżącym katalogu roboczym.

Aby sprawdzić, czy nowa gałąź została utworzona:

repo status .

Korzystanie z gałęzi tematycznych

Aby przypisać oddział do konkretnego projektu:

repo start BRANCH_NAME PROJECT_NAME

Listę wszystkich projektów można znaleźć na android.googlesource.com . Jeśli już przeszedłeś do katalogu projektu, po prostu użyj kropki do reprezentowania bieżącego projektu.

Aby przejść do innego oddziału w lokalnym środowisku pracy:

git checkout BRANCH_NAME

Aby wyświetlić listę istniejących oddziałów:

git branch

lub

repo branches

Oba polecenia zwracają listę istniejących gałęzi z nazwą bieżącej gałęzi poprzedzoną gwiazdką (*).

Pliki przejściowe

Domyślnie Git zauważa, ale nie śledzi zmian wprowadzanych w projekcie. Powiedzieć Git, aby zachować wprowadzone zmiany, należy zaznaczyć lub wystawić te zmiany w celu włączenia do zatwierdzenia.

Aby wprowadzić zmiany:

git add

To polecenie akceptuje argumenty dla plików lub katalogów w katalogu projektu. Pomimo nazwy, git add nie tylko dodaje pliki do repozytorium Git; może być również używany do modyfikowania i usuwania plików.

Przeglądanie statusu klienta

Aby wyświetlić stan plików:

repo status

Aby wyświetlić niezatwierdzone zmiany (zmiany lokalne, które nie są oznaczone do zatwierdzenia):

repo diff

Aby wyświetlić wprowadzone zmiany (zlokalizowane zmiany, które są oznaczone do zatwierdzenia), upewnij się, że jesteś w katalogu projektu, a następnie uruchom git diff z argumentem z cached :

cd ~/WORKING_DIRECTORY/PROJECT
git diff --cached

Zatwierdzanie zmian

Zatwierdzenie jest podstawową jednostką kontroli wersji w Git i składa się z migawki struktury katalogów i zawartości plików dla całego projektu. Aby utworzyć zatwierdzenie w Git:

git commit

Gdy zostaniesz poproszony o komunikat zatwierdzenia, podaj krótki (ale pomocny) komunikat o zmianach przesłanych do AOSP. Jeśli nie dodasz komunikatu o zatwierdzeniu, zatwierdzenie zostanie przerwane.

Przesyłanie zmian do Gerrit

Zaktualizuj do najnowszej wersji, a następnie prześlij zmianę:

repo sync
repo upload

Te polecenia zwracają listę zatwierdzonych zmian i monitują o wybranie gałęzi do przesłania na serwer recenzji. Jeśli jest tylko jedna gałąź, pojawi się prosta zachęta y/n .

Rozwiązywanie konfliktów synchronizacji

Jeśli polecenie repo sync zwróci konflikty synchronizacji:

  1. Wyświetl pliki, które nie zostały scalone (kod stanu = U).
  2. W razie potrzeby edytuj regiony konfliktu.
  3. Przejdź do odpowiedniego katalogu projektu. Dodaj i zatwierdź pliki, których dotyczy problem, a następnie ponownie podstaw zmiany:
    git add .
    git commit
    git rebase --continue
    
  4. Po zakończeniu ponownego bazowania ponownie rozpocznij całą synchronizację:
    repo sync PROJECT0 PROJECT1 ... PROJECTN
    

Sprzątanie klientów

Po scaleniu zmian w Gerrit zaktualizuj swój lokalny katalog roboczy, a następnie użyj repo prune aby bezpiecznie usunąć nieaktualne gałęzie tematów:

repo sync
repo prune

Usuwanie klientów

Ponieważ wszystkie informacje o stanie są przechowywane w kliencie, wystarczy usunąć katalog z systemu plików:

rm -rf WORKING_DIRECTORY

Usunięcie klienta powoduje trwałe usunięcie wszelkich zmian, które nie zostały przesłane do przeglądu.