Git Version Control sur la ligne de commande pour les développeurs iOS

Cela nous est arrivé à tous: nous modifions quelque chose dans notre code et, tout à coup, tout semble "cassé". C’est à ce moment que le contrôle de version est une aubaine, si vous savez vous en servir. Dans ce tutoriel, nous allons apprendre à utiliser Git à partir de la ligne de commande.

Xcode et d'autres IDE modernes intègrent des options de base pour Git dans leur interface utilisateur graphique, mais vous n'obtenez le contrôle de haut niveau de votre référentiel (référentiel Git) que par le biais de la ligne de commande. Si vous utilisez le codage avancé ou la gestion de Git, il est important d’être à l’aise avec la ligne de commande. Si vous n'avez jamais utilisé la ligne de commande auparavant, vous pouvez consulter mon autre didacticiel sur le sujet:

À propos du contrôle de version

Avant de commencer, nous devrions vérifier ce qu'est exactement le contrôle de version. UNE Système de contrôle de version est une solution logicielle qui peut facilement sauvegarder les révisions de votre code et d’autres données afin que vous puissiez revenir aux versions précédentes, passer en revue les modifications apportées et partager les mises à jour avec les collaborateurs.. 

Il existe de nombreux avantages et cas d'utilisation pour le contrôle de version. Par exemple, en examinant les modifications ("commet") dans votre projet, vous pouvez identifier qui a écrit un morceau de code particulier et pourquoi. Vous pouvez également annuler toutes les modifications qui se sont avérées être erronées ou pour casser des fonctionnalités..

Le système de contrôle de version le plus couramment utilisé aujourd'hui est Git, c'est donc celui que nous allons examiner dans cet article. Sachez qu’il existe d’autres systèmes largement utilisés, par exemple SVN et Mercurial.. 

Termes et concepts clés

  • dépôt ou repo-contient tout le code d'un seul projet, ainsi que l'historique complet des modifications de chaque fichier.
  • directeur de travail-lorsque vous modifiez votre code, vous apportez des modifications à votre répertoire de travail. Si vous souhaitez enregistrer ces modifications dans le référentiel, vous devez créer une commettre. Si toutes les modifications du répertoire de travail ont été validées dans le référentiel, le répertoire de travail est nettoyer.
  • commettre-un groupe de modifications apportées aux fichiers source. Généralement, ces modifications sont regroupées de sorte que chaque validation concerne une seule correction de bogue ou une seule fonctionnalité..
  • branche-le travail sur un projet peut être organisé en branches. Cela permet à un développeur ou à un groupe de développeurs de travailler sur une fonctionnalité, tandis qu'un autre développeur fonctionne sur une autre fonctionnalité.. 
  • fusionner-apporte les changements dans deux branches ensemble. Cela peut souvent être fait automatiquement par Git, mais s’il existe conflits, vous devrez peut-être indiquer manuellement à Git comment fusionner les fichiers.

Services de gestion de référentiel

Lorsque vous utilisez le contrôle de version, vous créez un dépôt, ou repo, et il est très courant d’héberger ce dépôt sur un Service de gestion de référentiel. Pour les besoins de ce didacticiel, nous n'hébergerons notre référentiel nulle part, vous pouvez donc vous concentrer sur l'utilisation du contrôle de version. Si vous le souhaitez, vous pouvez toutefois consulter ces services de gestion de référentiels. Vous devriez pouvoir leur appliquer ces connaissances si vous le souhaitez.. 

GitHub, Bitbucket, GitLab et Coding en sont quelques exemples. Ils sont largement utilisés par les développeurs du monde entier. GitHub et moi-même utilisons GitHub car il héberge un grand nombre de projets open-source. Les pensions GitHub sont publiques par défaut, mais vous pouvez créer des pensions privées moyennant des frais mensuels..

Commencer

Créer une application

Pour commencer, vous devez créer une nouvelle application dans Xcode. Pour cette application, vous pouvez utiliser n'importe quel modèle et si vous avez une application actuelle qui possède un référentiel Git, vous pouvez également l'utiliser pour ce tutoriel..

Voici à quoi devrait ressembler l'EDI juste avant de créer enfin votre projet (lorsque vous devez choisir l'emplacement de stockage du projet):

Assurez-vous que la case qui dit Créer un référentiel Git sur mon Mac est cochée, car cela garantira que votre projet aura le rapport en interne. Plus tard, si vous choisissez d’utiliser un système de gestion de référentiel, vous pourrez: pousser tout ce code, et tous les commettre vous avez déjà fait va apparaître.

Ouverture du terminal

Pour accéder à la ligne de commande, vous devez ouvrir le terminal. Vous pouvez le faire de deux manières. Tu peux ouvrir Rampe de lancement, et là vous pouvez trouver le Terminal icône dans le Autre dossier sur la première page de Launchpad. Ou vous pouvez frapper Command-Space sur votre clavier et recherchez Terminal dans Projecteur.

Une fois que vous ouvrez le terminal, vous devriez voir quelque chose comme ce qui suit.

C'est ce qu'on appelle "l'invite de commande" -vous verrez le répertoire actuel, puis votre nom d'utilisateur suivi d'un $.

D'accord! Vous êtes maintenant prêt à apprendre à utiliser le contrôle de version sur le terminal..

Aide-mémoire sur les commandes du terminal

Voici quelques-unes des commandes de base que j'ai décrites dans mon tutoriel sur la prise en main de Terminal. Vous devrez les connaître pour utiliser efficacement le terminal.. 

Aidez-moi

  • Aidez-moi-comme son nom l'indique, vous pouvez taper cette commande dans le terminal pour obtenir une liste des différentes commandes.
  • homme -semblable à la commande précédente, cette commande vous indique exactement ce que fait une commande (et vous fournit une documentation complète) sans que vous ayez à chercher sur Google.

Gestion de fichiers

  • ls-répertorie tout le contenu du répertoire en cours. Cette commande est pratique si vous ne souhaitez pas utiliser le Finder pour parcourir les fichiers. Vous pouvez simplement les lister à l'aide de cette commande dans votre terminal..
  • CD -cette commande est utilisée pour changer de répertoire. Si vous écrivez CD seul, vous sortirez du répertoire en cours. Après avoir utilisé ls (pour voir les répertoires), vous pouvez écrire le nom du répertoire que vous voulez entrer.

Changer les préférences

  • défauts -cette commande est utilisée pour modifier les paramètres système par défaut, dont certains ne peuvent pas être modifiés sans utiliser le terminal.
  • caféine-Comme son nom l'indique, cette commande permet d'éviter que votre Mac s'assombrisse, s'éteigne ou s'endorme. Pour mettre fin à cela, il suffit d’appuyer sur Control-C.

Édition de texte

  • vim -c'est l'un de mes favoris. Vous pouvez modifier des fichiers texte à l'aide de TextEdit par défaut (ou de tout éditeur basé sur une interface graphique), mais vim est fondamentalement un éditeur de texte en ligne de commande, c'est-à-dire qu'il fonctionne entièrement dans le terminal.

La mise en réseau

  • ping -Cette commande vous permet de vérifier le temps de réponse du serveur d'une URL ou d'une adresse IP spécifiée. Cela peut ne pas être utile pour tous les développeurs, mais il est bon de savoir.

Admin

  • sudo -un moyen de remplacer les privilèges de votre utilisateur et de devenir un superutilisateur de l'ordinateur. Vous serez invité à entrer un mot de passe administrateur lorsque vous l'utiliserez..

Différentes commandes Git

Maintenant que vous avez vu quelques commandes de base, voyons les différentes choses que vous pouvez faire avec Git. Je ne les couvrirai pas tous, mais je vais vous apprendre les principaux outils que vous utiliserez dans le développement quotidien. Si vous avez besoin d'informations supplémentaires, vous pouvez simplement exécuter git aide dans votre terminal pour plus de détails, et si cela ne suffit pas, pour une documentation complète, vous pouvez exécuter homme git pour obtenir la page de manuel.

Voici à quoi ressemblent les pages d'aide:

Créer un projet

  • git clone remote-repo-link-Si vous souhaitez cloner un référentiel à partir d'un service de gestion de référentiel, vous pouvez utiliser cette commande avec l'URL pour obtenir une copie locale sur votre ordinateur..
  • git init-Si vous créez un nouveau référentiel à partir d'un dossier existant, vous pouvez utiliser cette commande. Cela initialisera le dossier actuel comme un nouveau dépôt. En général, vous le feriez lorsque vous créez un projet pour la première fois..

Validation des modifications

  • statut git-vous indique quels fichiers de votre répertoire de travail ont été modifiés. Si vous avez modifié des fichiers, il est peut-être temps de faire une validation.!
  • git commit -am "message utile de validation"-lorsque vous avez apporté des modifications à votre projet (par exemple, lorsque vous avez terminé une fonctionnalité simple ou réparé un bogue), vous devez valider vos modifications. Assurez-vous de fournir un message de validation clair et concis, car cela aidera les autres développeurs à comprendre ce que vous avez fait et pourquoi..
  • git add nom du fichier ou git add --all-Si vous ajoutez un nouveau fichier à votre référentiel, vous devrez l'ajouter au référentiel avant de le valider. Utilisez le ajouter commander. 

Branches du référentiel

  • git branch nom-branche?-avec cette commande, vous pouvez soit lister les branches actuelles, soit en créer une nouvelle.
  • git merge nom-branche-fusionner la branche actuelle avec la branche indiquée. Ceci combinera le code de la branche actuelle avec celui qui est nommé..
  • git checkout nom-branche-passer à la branche indiquée. Cela mettra simplement la branche actuelle de côté et rendra l’autre branche active.

Systèmes de gestion de référentiels

  • git push-met à jour le référentiel dans le système de gestion de référentiel. Une fois que vous avez terminé les modifications et que vous êtes sûr que votre code fonctionne bien, vous pouvez le pousser de sorte que les autres membres puissent le voir et le récupérer..
  • git pull-met à jour votre copie de travail locale du référentiel pour refléter les dernières mises à jour envoyées au système de gestion de référentiel. C'est une bonne idée de le faire avant de faire des changements si vous travaillez en équipe..

Ce sont quelques-unes des principales commandes que vous utiliserez dans le contrôle de version pour commencer, mais avant de terminer ce didacticiel, examinons-en quelques-unes en profondeur avec le projet Xcode que nous avons créé précédemment..

Exemple d'utilisation de Git avec un projet Xcode

Voyons maintenant quelques exemples d'utilisation de Git en ligne de commande avec le projet Xcode créé précédemment dans ce didacticiel. Notez que nous utiliserons les commandes de terminal ci-dessus, alors assurez-vous de continuer à les consulter ou de les mémoriser..

Navigation dans le répertoire du projet

Avant de commencer, vous devez accéder au répertoire du projet à l’aide des commandes mentionnées ci-dessus (astuce: utilisez la commande CD et ls commandes). Une fois que vous êtes là, lancez ls et assurez-vous d'avoir quelque chose comme ça:

Ta-da! Vous êtes maintenant dans votre répertoire de projet et prêt à faire tout ce dont vous avez besoin avec votre projet. Il suffit de suivre lorsque nous nous engageons et branche.

Commettre

Commettre votre code est la chose que vous ferez le plus souvent en programmation. Dès que vous effectuez un changement effectif, la meilleure pratique consiste à l'enregistrer avec des commentaires détaillés..

Faire un changement

Pour commencer, modifiez le projet Xcode. Pour le mien, je vais juste ajouter la ligne suivante de code factice dans mon viewDidLoad () méthode:

laissez foobar = "foo"

Obtenir le statut

Une fois que vous avez terminé d'ajouter (ou de soustraire) une ligne ou deux de code, vous êtes prêt à vérifier le statut de votre projet. Pour ce faire, collez la commande suivante (moins le $ invite) dans la fenêtre de votre terminal:

$ git status

Vous verrez quelque chose comme ça:

Le fichier que vous avez modifié est surligné en rouge, ce qui vous indique qu'il contient des modifications non validées..

Ajout de fichiers à la zone de transfert

Si vous souhaitez ne valider que certains fichiers, vous pouvez le faire en utilisant une "zone de transfert" dans laquelle seuls ces fichiers seront validés. Pour ajouter tous les fichiers modifiés à la "zone de transfert", vous devez simplement exécuter la ligne de code suivante:

$ git add -A

le -UNE le drapeau que vous voyez signifie que tous les fichiers que vous avez modifiés seront ajoutés (-UNE est pour tous, et vous pouvez aussi écrire git add --all). 

Pour vérifier que vos fichiers sont prêts à être validés, exécutez simplement la procédure suivante:

$ git status

Vous verrez quelque chose comme ça:

Voir? Le même fichier qui était en rouge est maintenant vert, ce qui indique que vous l'avez préparé avec succès pour la validation.. 

Commettre votre code

Enfin, pour valider votre code, il vous suffit d’exécuter la commande suivante dans votre terminal et d’ajouter un message entre guillemets..

$ git commit -m "Mon tout premier commit."

le -m flag indique au terminal que vous allez ajouter un message à votre fichier, et il est très important d’être clair avec ce message. Ces messages sont essentiels pour suivre les modifications apportées à votre projet..

Maintenant, vous avez fait votre tout premier commit! Vous êtes sur la bonne voie pour rendre votre code plus facile et plus sécurisé.

Branches

La deuxième chose que vous faites le plus souvent en tant que développeur consiste à créer, fusionner et utiliser des branches pour trier votre code et isoler les fonctionnalités avant de les diffuser aux clients..

Créer une nouvelle branche

Par défaut, vous vous trouvez dans ce que nous appelons la branche "maître". C’est la branche principale sur laquelle tout devrait finalement arriver. Les meilleures pratiques, en particulier en travaillant en équipe, sont de travailler sur de nouvelles fonctionnalités majeures dans leurs propres branches, qui seront ensuite fusionnées avec le logiciel master.

Pour vous entraîner à créer des branches, créons une nouvelle branche. Pour ce faire, exécutez la commande suivante:

$ git branche ma-première-branche

Vous pouvez nommer la branche comme bon vous semble. 

Pour voir la nouvelle branche, vous pouvez taper:

$ git branch

Lorsque vous exécutez cette commande, vous verrez quelque chose comme ceci:

Notez que vous pouvez voir deux branches: maîtriser et ma-première-branche (ou ce que vous avez nommé votre branche). De plus, vous verrez qu'il y a un astérisque près du maîtriser branche, ce qui indique que vous êtes actuellement dans cette branche.

Vérification d'une branche actuelle

Si vous avez besoin de passer à une autre branche existante, vous devrez check-out cette branche. Lorsque vous faites cela, vous quittez la branche actuelle et tout son code reste intact (avec vos modifications locales), mais votre répertoire de travail sera rempli avec le code de la branche que vous avez extraite..

Essayez-le avec la commande suivante:

$ git checkout ma-première-branche

Vous devriez obtenir une confirmation qui ressemble à ceci:

Maintenant, vous passez à cette branche et cela devrait être une table rase. Pour le confirmer, lancez statut git vérifier s'il y a des fichiers modifiés. 

Fusion de branches

Une fois que vous avez terminé vos modifications, vous devez normalement fusionner la branche avec la branche principale. Nous n'avons pas encore apporté de modifications, alors faisons-le maintenant avant de fusionner les deux branches.

Apportez une autre modification au projet Xcode. Pour le mien, je vais juste ajouter la ligne suivante de code factice dans mon viewDidLoad () méthode:

let gooey = "fooey"

Vous pouvez faire n'importe quel changement que vous aimez. Assurez-vous simplement de savoir quel fichier et quel changement vous avez apporté.

Ensuite, exécutez à nouveau la ligne de code suivante:

$ git status

Maintenant, vous devriez voir le nom de fichier en rouge et vous devrez valider avant de fusionner cette modification dans votre branche principale. J'espère que vous savez comment faire cela, alors passons à l'étape suivante. Vérifiez que le commit a réussi statut git.

À ce stade, vous devriez avoir validé le code. Préparons-nous donc à fusionner les deux branches. Tout d'abord, exécutez la commande suivante:

$ git checkout master

Cette commande passe à la maîtriser branche pour préparer la fusion avec l’autre branche que nous avons créée. Enfin, pour fusionner, exécutez la commande suivante:

$ git fusionne ma-première-branche

Vous devriez obtenir une confirmation qui ressemble à ceci:

Vos modifications depuis la branche de fonctionnalité ont maintenant été fusionnées dans le maître. Si la branche principale a changé depuis la création de la branche, Git essaiera de combiner automatiquement vos modifications de branche avec la principale. S'il ne peut pas le faire automatiquement, il vous invitera à résoudre manuellement les conflits.

Maintenant, vous savez comment fusionner des branches, les créer et les basculer entre elles en utilisant uniquement le terminal.!

Conclusion

Comme vous le voyez, il n’est pas difficile de contrôler les versions de votre projet et les avantages en valent la peine. Le contrôle de version est l'une des meilleures pratiques de développement. Vous devez vous y familiariser si vous souhaitez travailler dans un contexte professionnel.. 

J'espère que cet article vous a donné la confiance nécessaire pour utiliser le contrôle de version au quotidien. Si vous souhaitez en savoir plus sur Git, consultez certaines de nos vidéos pédagogiques animées ici sur Envato Tuts.+.