Versionsverwaltung – Workflow

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:

  1. Starten Sie einen neuen Themenzweig mit repo start.
  2. Bearbeiten Sie die Dateien.
  3. Phasenänderungen mit git add.
  4. Führen Sie mit git commit einen Commit für Änderungen durch.
  5. 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:

  1. Sehen Sie sich die nicht zusammengeführten Dateien an (Statuscode = U).
  2. Bearbeiten Sie die in Konflikt stehenden Regionen nach Bedarf.
  3. 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
    
  4. 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.