Praca z kodem Androida wymaga używania Gita (systemu kontroli wersji typu open source ) i Repo (narzędzia do zarządzania repozytoriami opracowanego przez Google , które działa na Git). Wyjaśnienie zależności między Repo a Gitem oraz linki do dokumentacji pomocniczej dotyczącej każdego narzędzia znajdziesz w sekcji Narzędzia do kontroli kodu źródłowego.
Flow
Tworzenie aplikacji na Androida obejmuje ten podstawowy proces:
- Utwórz nową gałąź tematu za pomocą polecenia
repo start. - Edytuj pliki.
- Przygotuj zmiany za pomocą polecenia
git add. - Zatwierdź zmiany za pomocą polecenia
git commit. - Prześlij zmiany na serwer sprawdzania za pomocą polecenia
repo upload.
Lista zadań
Praca z Gitem i Repo w repozytoriach kodu Androida obejmuje wykonywanie tych typowych zadań.
| Polecenie | Opis |
|---|---|
repo init |
Inicjuje nowego klienta. |
repo sync |
Synchronizuje klienta z repozytoriami. |
repo start |
Uruchamia nową gałąź. |
repo status |
Wyświetla stan bieżącej gałęzi. |
repo upload |
Przesyła zmiany na serwer sprawdzania. |
git add |
Przygotowuje pliki. |
git commit |
Zatwierdza przygotowane pliki. |
git branch |
Wyświetla bieżące gałęzie. |
git branch [branch] |
Tworzy nową gałąź tematu. |
git checkout [branch] |
Przełącza HEAD na określoną gałąź. |
git merge [branch] |
Scala [branch] z bieżącą gałęzią. |
git diff |
Wyświetla różnice między nieprzygotowanymi zmianami. |
git diff --cached |
Wyświetla różnice między przygotowanymi zmianami. |
git log |
Wyświetla historię bieżącej gałęzi. |
git log m/[codeline].. |
Wyświetla zatwierdzenia, które nie zostały wypchnięte. |
Informacje o pobieraniu kodu źródłowego za pomocą Repo znajdziesz w artykule Pobieranie kodu źródłowego i dokumentacja poleceń Repo.
Synchronizowanie klientów
Aby zsynchronizować pliki we wszystkich dostępnych projektach:
repo sync
Aby zsynchronizować pliki w wybranych projektach:
repo sync PROJECT0 PROJECT1 ... PROJECTN
Tworzenie gałęzi tematu
Gdy zaczynasz wprowadzać zmiany, np. pracować nad błędem lub nową funkcją, utwórz gałąź tematu w lokalnym środowisku pracy. Gałąź tematu nie jest kopią oryginalnych plików, ale wskaźnikiem do konkretnego zatwierdzenia, co sprawia, że tworzenie gałęzi lokalnych i przełączanie się między nimi jest operacją lekką. Dzięki gałęziom możesz odizolować jeden aspekt pracy od innych. Więcej informacji o korzystaniu z gałęzi tematu znajdziesz w artykule Jak oddzielić gałęzie tematu.
Aby utworzyć gałąź tematu za pomocą Repo, przejdź do projektu i uruchom to polecenie:
repo start BRANCH_NAME .
Kropka na końcu ( .) oznacza projekt w bieżącym katalogu roboczym.
Aby sprawdzić, czy nowa gałąź została utworzona:
repo status .
Korzystanie z gałęzi tematu
Aby przypisać gałąź do konkretnego projektu:
repo start BRANCH_NAME PROJECT_NAME
Listę wszystkich projektów znajdziesz w artykule Repozytoria Git Google. Jeśli masz już otwarty katalog projektu, użyj kropki, aby oznaczyć 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, a nazwa bieżącej gałęzi jest poprzedzona gwiazdką (*).
Przygotowywanie plików
Domyślnie Git zauważa zmiany wprowadzone w projekcie, ale ich nie śledzi. Aby Git zachował zmiany, musisz je oznaczyć lub przygotować te zmiany do uwzględnienia w zatwierdzeniu.
Aby przygotować zmiany:
git add
To polecenie akceptuje argumenty dotyczące plików lub katalogów w katalogu projektu
directory. Pomimo nazwy polecenie git add nie tylko dodaje pliki do
repozytorium Git, ale też może służyć do przygotowywania modyfikacji i
usunięć plików.
Wyświetlanie stanu klienta
Aby wyświetlić stan plików:
repo status
Aby wyświetlić niezatwierdzone zmiany (lokalne zmiany, które nie są oznaczone do zatwierdzenia):
repo diff
Aby wyświetlić zatwierdzone zmiany (lokalne zmiany, które są oznaczone do
zatwierdzenia), upewnij się, że jesteś w katalogu projektu, a następnie uruchom polecenie git
diff z argumentem cached:
cd ~/WORKING_DIRECTORY/PROJECTgit diff --cached
Zatwierdzanie zmian
Zatwierdzenie to podstawowa jednostka kontroli wersji w Git, która składa się z migawki struktury katalogów i zawartości plików całego projektu. Aby utworzyć zatwierdzenie w Git, użyj tego polecenia:
git commit
Gdy pojawi się prośba o podanie komunikatu zatwierdzenia, wpisz krótki (ale przydatny) komunikat o zmianach 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 syncrepo upload
Te polecenia zwracają listę zatwierdzonych zmian i wyświetlają prośbę o
wybranie gałęzi do przesłania na serwer sprawdzania. Jeśli jest tylko jedna
gałąź, zobaczysz prosty komunikat y/n.
Rozwiązywanie konfliktów synchronizacji
Jeśli polecenie repo sync zwróci konflikty synchronizacji:
- Wyświetl pliki, które nie zostały scalone (kod stanu = U).
- W razie potrzeby edytuj obszary konfliktu.
- Przejdź do odpowiedniego katalogu projektu. Dodaj i zatwierdź pliki, których dotyczy problem
, a następnie zmień bazę zmian:
git add .git commitgit rebase --continue - Po zakończeniu zmiany bazy uruchom ponownie całą synchronizację:
repo sync PROJECT0 PROJECT1 ... PROJECTN
Zwalnianie miejsca dla klientów
Po scaleniu zmian w Gerrit zaktualizuj lokalny katalog roboczy, a następnie użyj
repo prune aby bezpiecznie usunąć nieaktualne gałęzie tematu:
repo syncrepo 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 wszystkich zmian, które nie zostały przesłane do sprawdzenia.