Praca z kodem na Androida wymaga platformy Git (oprogramowania typu open source system kontroli wersji) i Repo (repozytorium utworzone przez Google). (narzędzie do zarządzania działające na Git). Zobacz narzędzia do kontroli źródeł. gdzie można znaleźć wyjaśnienie zależności między Repozytorium i Git oraz linki do dodatkowej dokumentacji każdego narzędzia.
Płynięcie
Programowanie aplikacji na Androida obejmuje ten podstawowy przepływ pracy:
- Utwórz nową gałąź tematów za pomocą:
repo start
. - Edytuj pliki.
- Etap zmienia się za pomocą funkcji
git add
. - Zatwierdź zmiany za pomocą metody
git commit
. - Prześlij zmiany na serwer opinii za pomocą narzędzia
repo upload
.
Lista zadań
Praca z Git i Repo w repozytoriach kodu Androida obejmuje wykonując te typowe zadania.
Polecenie | Opis |
---|---|
repo init |
Inicjuje nowego klienta. |
repo sync |
Synchronizuje klienta z repozytoriami. |
repo start |
Uruchamia nową gałąź. |
repo status |
Pokazuje stan bieżącej gałęzi. |
repo upload |
Przesyła zmiany na serwer opinii. |
git add |
Przygotowuje pliki na etapie przejściowym. |
git commit |
Zatwierdź pliki etapowe. |
git branch |
Pokazuje bieżące gałęzie. |
git branch [branch] |
Tworzy nową gałąź tematu. |
git checkout [branch] |
Przełącza HEAD do określonej gałęzi. |
git merge [branch] |
Scala [branch] z bieżącą gałęzią. |
git diff |
Pokazuje różnice między nieetapowymi zmianami. |
git diff --cached |
Pokazuje różnice między zmianami etapowymi. |
git log |
Pokazuje historię bieżącej gałęzi. |
git log m/[codeline].. |
Pokazuje zatwierdzenia, które nie zostały przekazane. |
Informacje o używaniu Repo do pobierania źródła znajdziesz w tych artykułach: Pobieranie źródeł oraz Dokumentacja polecenia Repo.
Synchronizowanie klientów
Aby zsynchronizować pliki dla wszystkich dostępnych projektów:
repo sync
Aby zsynchronizować pliki z wybranych projektów:
repo sync PROJECT0 PROJECT1 ... PROJECTN
Tworzenie gałęzi tematów
Tworząc dział tematyczny w lokalnym środowisku pracy, , na przykład gdy rozpoczniesz pracę nad błędem lub nową funkcją. Gałąź tematów nie jest kopią oryginalnych plików; to wskaźnik do konkretnego zatwierdzenia, które umożliwia tworzenie gałęzi lokalnych i przełączanie się nie wymaga dużych nakładów pracy. Rozgałęzienia pozwalają wyodrębnić jeden aspekt Twoją pracę od innych. Ciekawy artykuł o używaniu tematu gałęzie, patrz Rozdzielanie działów tematycznych.
Aby uruchomić gałąź tematów przy użyciu repozytorium, przejdź do projektu i uruchom polecenie:
repo start BRANCH_NAME .
Okres końcowy ( .
) oznacza bieżący projekt, który jest aktualnie tworzony.
katalogu.
Aby sprawdzić, czy nowa gałąź została utworzona:
repo status .
Używanie gałęzi tematów
Aby przypisać gałąź do konkretnego projektu:
repo start BRANCH_NAME PROJECT_NAME
Listę wszystkich projektów znajdziesz tutaj android.googlesource.com Jeśli jesteś już w katalogu projektu, wpisz kropkę reprezentują bieżący projekt.
Aby przełączyć się na inną gałąź w lokalnym środowisku pracy:
git checkout BRANCH_NAME
Aby wyświetlić listę istniejących gałęzi:
git branch
lub
repo branches
Oba polecenia zwracają listę istniejących gałęzi o nazwie gałąź poprzedzona gwiazdką (*).
Pliki przejściowe
Domyślnie Git wykrywa zmiany, ale nie śledzi zmian wprowadzanych w projekcie. Aby poinformować Git o zachowaniu zmian, musisz je oznaczyć lub przygotować zmiany do uwzględnienia w zatwierdzeniu.
Aby etapować zmiany:
git add
To polecenie przyjmuje argumenty odnoszące się do plików lub katalogów w projekcie
katalogu. Pomimo nazwy git add
nie tylko dodaje pliki do
repozytorium Git; Można go również wykorzystać do testowania zmian w plikach
usunięcia.
Wyświetlanie stanu klienta
Aby wyświetlić listę stanu plików:
repo status
Aby wyświetlić niezatwierdzone zmiany (lokalne zmiany, które nie są oznaczone jako wymagające zatwierdzenia):
repo diff
Aby wyświetlić zatwierdzone zmiany (zmiany w lokalizacjach, które są oznaczone dla
zatwierdzenia), sprawdź, czy jesteś w katalogu projektu, a następnie uruchom polecenie git
diff
z argumentem cached
:
cd ~/WORKING_DIRECTORY/PROJECT
git diff --cached
Wprowadzanie zmian
commit to podstawowa jednostka kontroli wersji w Git i składa się z: zrzut struktury katalogu i zawartości plików dla całego projektu. Aby utworzyć zatwierdzenie w Git, użyj tego polecenia:
git commit
Gdy pojawi się komunikat o zatwierdzeniu, podaj krótki (ale przydatny) komunikat: zmian przesłanych do AOSP. Jeśli nie dodasz komunikatu zatwierdzenia, zatwierdzenie się nie powiedzie.
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 zachęcają do
wybierz gałęzie, które chcesz przesłać na serwer opinii. Jeśli jest tylko jeden
, pojawi się prosty prompt y/n
.
Rozwiązywanie konfliktów synchronizacji
Jeśli polecenie repo sync
zwraca konflikty synchronizacji:
- Wyświetl pliki, które nie zostały scalone (kod stanu = U).
- W razie potrzeby zmodyfikuj regiony konfliktu.
- Przejdź do odpowiedniego katalogu projektu. Dodaj i zatwierdź problem
i ponownie wprowadzić zmiany:
git add .
git commit
git rebase --continue
- Po zakończeniu przywracania ponownie rozpocznij całą synchronizację:
repo sync PROJECT0 PROJECT1 ... PROJECTN
Czyszczenie klientów
Po scaleniu zmian w Gerrit zaktualizuj lokalny katalog roboczy, a następnie użyj
repo prune
, aby bezpiecznie usunąć nieaktualne gałęzie tematów:
repo sync
repo prune
Usuwam klientów
Wszystkie informacje o stanie są przechowywane w kliencie, więc wystarczy usuń katalog z systemu plików:
rm -rf WORKING_DIRECTORY
Usunięcie klienta spowoduje trwałe usunięcie wszystkich zmian, które nie zostały wprowadzone został przesłany do sprawdzenia.