Für die Arbeit mit Android-Code ist Git (ein Open-Source-Tool) erforderlich. Versionsverwaltungssystem) und Repo (ein von Google erstelltes Repository) Managementtool, das auf Git ausgeführt wird). Siehe Versionsverwaltungstools zur Erläuterung der Beziehung zwischen Repository und Git sowie Links zur zugehörigen Dokumentation für jedes Tool.
Fließen
Die Android-Entwicklung umfasst den folgenden grundlegenden Workflow:
- Starten Sie einen neuen Themenzweig mit
repo start
. - Bearbeiten Sie die Dateien.
- Phasenänderungen mit
git add
. - Führen Sie mit
git commit
einen Commit für Änderungen durch. - Laden Sie die Änderungen mit
repo upload
auf den Rezensionsserver hoch.
Tasks
Die Arbeit mit Git und Repository in Android-Code-Repositories umfasst die folgenden häufigen Aufgaben ausführen.
Befehl | Beschreibung |
---|---|
repo init |
Initialisiert einen neuen Client. |
repo sync |
Synchronisiert den Client mit den Repositories. |
repo start |
Startet einen neuen Zweig. |
repo status |
Zeigt den Status des aktuellen Zweigs an. |
repo upload |
Lädt Änderungen auf den Rezensionsserver hoch. |
git add |
Stellt die Dateien bereit. |
git commit |
Führt ein Commit der bereitgestellten Dateien durch. |
git branch |
Zeigt die aktuellen Zweige an. |
git branch [branch] |
Erstellt einen neuen Themenzweig. |
git checkout [branch] |
Wechselt HEAD zum angegebenen Zweig. |
git merge [branch] |
Führt [branch] mit dem aktuellen Zweig zusammen. |
git diff |
Zeigt die Unterschiede der nicht getaggten Änderungen. |
git diff --cached |
Zeigt die Unterschiede der bereitgestellten Änderungen. |
git log |
Zeigt den Verlauf des aktuellen Zweigs an. |
git log m/[codeline].. |
Zeigt die Commits an, die nicht übertragen wurden. |
Informationen zur Verwendung von Repo zum Herunterladen des Quellcodes finden Sie unter Herunterladen der Quelle und des Referenz des Repository-Befehls.
Clients synchronisieren
So synchronisieren Sie die Dateien für alle verfügbaren Projekte:
repo sync
So synchronisieren Sie die Dateien für ausgewählte Projekte:
repo sync PROJECT0 PROJECT1 ... PROJECTN
Themenzweige erstellen
Starten Sie einen Themenzweig in Ihrer lokalen Arbeitsumgebung, wann immer Sie einen beispielsweise wenn Sie mit der Arbeit an einem Fehler oder einer neuen Funktion beginnen. Einen Themenzweig ist keine Kopie der Originaldateien, es ist ein Zeiger auf eine Dies macht es möglich, lokale Zweigstellen zu erstellen und zwischen eine einfache Operation. Mithilfe von Zweigen können Sie einen Aspekt einer Ihre Arbeit von anderen zu unterscheiden. Interessanten Artikel zur Verwendung des Themas Ästen, siehe Trennen topic zweigs
Rufen Sie das Projekt auf und führen Sie den folgenden Befehl aus, um einen Themenzweig mithilfe des Repositorys zu starten:
repo start BRANCH_NAME .
Der nachgestellte Punkt ( .
) steht für das Projekt in der aktuellen Arbeitsphase
-Verzeichnis.
So prüfen Sie, ob der neue Zweig erstellt wurde:
repo status .
Themenzweige verwenden
So weisen Sie den Zweig einem bestimmten Projekt zu:
repo start BRANCH_NAME PROJECT_NAME
Eine Liste aller Projekte finden Sie unter android.googlesource.com verwenden. Wenn Sie das Projektverzeichnis bereits aufgerufen haben, verwenden Sie einfach einen Punkt, um das aktuelle Projekt repräsentieren.
So wechseln Sie zu einem anderen Zweig in Ihrer lokalen Arbeitsumgebung:
git checkout BRANCH_NAME
So rufen Sie eine Liste der vorhandenen Zweige auf:
git branch
oder
repo branches
Beide Befehle geben die Liste der vorhandenen Zweige mit dem Namen der aktuellen Zweig mit vorangestelltem Sternchen (*).
Staging-Dateien
Standardmäßig erkennt Git die in einem Projekt vorgenommenen Änderungen, verfolgt diese jedoch nicht. Damit Git Ihre Änderungen beibehält, müssen Sie diese markieren oder bereitstellen. für die Aufnahme in ein Commit.
So stellen Sie Änderungen bereit:
git add
Dieser Befehl akzeptiert Argumente für Dateien oder Verzeichnisse im Projekt.
-Verzeichnis. Trotz des Namens fügt git add
nicht nur Dateien zu
das Git-Repository; kann auch verwendet werden,
um Dateiänderungen durchzuführen
Löschungen.
Clientstatus ansehen
So listen Sie den Status von Dateien auf:
repo status
So rufen Sie Änderungen ohne Commit (lokale Änderungen, die nicht für den Commit markiert sind) auf:
repo diff
So sehen Sie sich die bearbeiteten Änderungen an, die gekennzeichnet sind:
Commit ausführen), prüfen Sie, ob Sie sich im Projektverzeichnis befinden, und führen Sie dann git
diff
mit dem Argument cached
aus:
cd ~/WORKING_DIRECTORY/PROJECT
git diff --cached
Commit für Änderungen durchführen
Ein Commit ist die Grundeinheit der Versionsverwaltung in Git und besteht aus einen Snapshot der Verzeichnisstruktur und der Dateiinhalte für das gesamte Projekt. Verwenden Sie diesen Befehl, um einen Commit in Git zu erstellen:
git commit
Wenn Sie zur Eingabe einer Commit-Nachricht aufgefordert werden, geben Sie eine kurze, aber hilfreiche Nachricht für an AOSP übermittelte Änderungen. Wenn Sie keine Commit-Nachricht hinzufügen, schlägt das Commit fehl.
Änderungen werden in Gerrit hochgeladen
Führen Sie ein Update auf die neueste Version durch und laden Sie die Änderung hoch:
repo sync
repo upload
Diese Befehle geben eine Liste der Änderungen zurück, zu denen Sie einen Commit durchgeführt haben, und fordern Sie dazu auf,
Wählen Sie die Zweige aus, die auf den Bewertungsserver hochgeladen werden sollen. Wenn es nur eine
sehen Sie eine einfache y/n
-Eingabeaufforderung.
Synchronisierungskonflikte beheben
Wenn der Befehl repo sync
Synchronisierungskonflikte zurückgibt:
- Sehen Sie sich die nicht zusammengeführten Dateien an (Statuscode = U).
- Bearbeiten Sie die in Konflikt stehenden Regionen nach Bedarf.
- Wechseln Sie in das entsprechende Projektverzeichnis. Fügen Sie den betroffenen Code hinzu und führen Sie einen Commit durch.
und führen Sie dann ein Rebase der Änderungen durch:
git add .
git commit
git rebase --continue
- Starten Sie nach Abschluss der Rebase die gesamte Synchronisierung erneut:
repo sync PROJECT0 PROJECT1 ... PROJECTN
Clients bereinigen
Aktualisieren Sie nach dem Zusammenführen der Änderungen in Gerrit das lokale Arbeitsverzeichnis und verwenden Sie dann
repo prune
, um veraltete Themen-Zweige sicher zu entfernen:
repo sync
repo prune
Clients werden gelöscht
Da alle Statusinformationen in Ihrem Client gespeichert werden, müssen Sie nur Löschen Sie das Verzeichnis aus Ihrem Dateisystem:
rm -rf WORKING_DIRECTORY
Beim Löschen eines Clients werden alle Änderungen endgültig gelöscht, die Sie nicht vorgenommen haben. wurde zur Überprüfung hochgeladen.