Google s'est engagé à promouvoir l'équité raciale pour les communautés noires. Regarde comment.
Cette page a été traduite par l'API Cloud Translation.
Switch to English

Flux de travail de contrôle de la source

Travailler avec du code Android nécessite l'utilisation de Git (un système de contrôle de version open-source) et Repo (un outil de gestion de référentiel construit par Google qui s'exécute au-dessus de Git). Voir Outils de contrôle de source pour une explication de la relation entre Repo et Git et des liens vers la documentation de support pour chaque outil.

Couler

Le développement Android implique le flux de travail de base suivant:

  1. Démarrez une nouvelle branche de rubrique à l'aide du repo start .
  2. Modifiez les fichiers.
  3. Modifiez les étapes à l'aide de git add .
  4. Validez les modifications en utilisant git commit .
  5. Importez les modifications sur le serveur de révision à l'aide du repo upload .

Tâches

Travailler avec Git et Repo dans les référentiels de code Android implique d'effectuer les tâches courantes suivantes.

Commander La description
repo init Initialise un nouveau client.
repo sync Synchronise le client avec les référentiels.
repo start Démarre une nouvelle succursale.
repo status Affiche l'état de la branche actuelle.
repo upload Télécharge les modifications sur le serveur de révision.
git add Met en scène les fichiers.
git commit Valide les fichiers intermédiaires.
git branch Affiche les branches actuelles.
git branch [branch] Crée une nouvelle branche de sujet.
git checkout [branch] Bascule HEAD sur la branche spécifiée.
git merge [branch] Fusionne [branch] dans la branche actuelle.
git diff Affiche les différences des modifications non mises en scène.
git diff --cached Affiche les différences des modifications par étapes.
git log Affiche l'historique de la branche actuelle.
git log m/[codeline].. Affiche les validations qui ne sont pas transmises.

Pour plus d'informations sur l'utilisation de Repo pour télécharger la source, consultez Téléchargement de la source et de la référence des commandes Repo .

Synchroniser les clients

Pour synchroniser les fichiers de tous les projets disponibles:

repo sync

Pour synchroniser les fichiers des projets sélectionnés:

repo sync PROJECT0 PROJECT1 ... PROJECTN

Création de branches de sujet

Démarrez une branche de rubrique dans votre environnement de travail local chaque fois que vous commencez une modification, par exemple lorsque vous commencez à travailler sur un bogue ou une nouvelle fonctionnalité. Une branche de rubrique n'est pas une copie des fichiers d'origine; c'est un pointeur vers un commit particulier, ce qui rend la création de branches locales et la commutation entre elles une opération légère. En utilisant des branches, vous pouvez isoler un aspect de votre travail des autres. Pour un article intéressant sur l'utilisation des branches de rubrique, reportez-vous à Séparation des branches de rubrique .

Pour démarrer une branche de rubrique à l'aide de Repo, accédez au projet et exécutez:

repo start BRANCH_NAME .

Le point final (.) Représente le projet dans le répertoire de travail actuel.

Pour vérifier que la nouvelle branche a été créée:

repo status .

Utilisation des branches de sujet

Pour affecter la branche à un projet spécifique:

repo start BRANCH_NAME PROJECT_NAME

Pour une liste de tous les projets, reportez-vous à android.googlesource.com . Si vous avez déjà accédé au répertoire du projet, utilisez simplement un point pour représenter le projet en cours.

Pour basculer vers une autre succursale dans votre environnement de travail local:

git checkout BRANCH_NAME

Pour afficher une liste des branches existantes:

git branch

ou

repo branches

Les deux commandes renvoient la liste des branches existantes avec le nom de la branche courante précédé d'un astérisque (*).

Fichiers intermédiaires

Par défaut, Git remarque mais ne suit pas les modifications que vous apportez dans un projet. Pour dire à Git de conserver vos modifications, vous devez marquer ou organiser ces modifications pour les inclure dans un commit.

Pour mettre en scène les changements:

git add

Cette commande accepte les arguments pour les fichiers ou répertoires dans le répertoire du projet. Malgré le nom, git add n'ajoute pas seulement des fichiers au dépôt Git; il peut également être utilisé pour organiser des modifications et des suppressions de fichiers.

Affichage de l'état du client

Pour lister l'état des fichiers:

repo status

Pour afficher les modifications non validées (modifications locales qui ne sont pas marquées pour la validation):

repo diff

Pour afficher les modifications validées (les modifications localisées qui sont marquées pour la validation), assurez-vous que vous êtes dans le répertoire du projet, puis exécutez git diff avec l'argument cached :

cd ~/WORKING_DIRECTORY/PROJECT
git diff --cached

Commettre des changements

Un commit est l'unité de base du contrôle des révisions dans Git et consiste en un instantané de la structure du répertoire et du contenu du fichier pour l'ensemble du projet. Pour créer un commit dans Git:

git commit

Lorsque vous êtes invité à un message de validation, fournissez un message court (mais utile) pour les modifications soumises à AOSP. Si vous n'ajoutez pas de message de validation, la validation s'interrompt.

Télécharger les modifications dans Gerrit

Mettez à jour avec la dernière révision, puis téléchargez la modification:

repo sync
repo upload

Ces commandes renvoient une liste des modifications que vous avez validées et vous invitent à sélectionner les branches à télécharger sur le serveur de révision. S'il n'y a qu'une seule branche, vous voyez une simple invite y/n .

Résolution des conflits de synchronisation

Si la commande repo sync renvoie des conflits de synchronisation:

  1. Affichez les fichiers non fusionnés (code d'état = U).
  2. Modifiez les régions de conflit si nécessaire.
  3. Accédez au répertoire de projet approprié. Ajoutez et validez les fichiers concernés, puis rebasez les modifications:
    git add .
    git commit
    git rebase --continue
    
  4. Une fois le rebase terminé, redémarrez l'intégralité de la synchronisation:
    repo sync PROJECT0 PROJECT1 ... PROJECTN
    

Nettoyage des clients

Après avoir fusionné les modifications apportées à Gerrit, mettez à jour votre répertoire de travail local, puis utilisez le repo prune pour supprimer en toute sécurité les branches de rubrique obsolètes:

repo sync
repo prune

Supprimer des clients

Étant donné que toutes les informations d'état sont stockées dans votre client, il vous suffit de supprimer le répertoire de votre système de fichiers:

rm -rf WORKING_DIRECTORY

La suppression d'un client supprime définitivement toutes les modifications que vous n'avez pas téléchargées pour examen.