Git avec Terminal
L’outil ultime pour le contrôle de version de fichiers avec Git dans le bac à sable DE Africa est le Terminal. Vous pouvez ouvrir une fenêtre Terminal à partir de l’onglet Lanceur en cliquant sur l’icône Terminal.
Dans cette section, nous allons vous montrer comment utiliser Terminal pour créer une branche et appliquer les modifications à votre fork. Cela implique de saisir des commandes dans la ligne de commande du Terminal.
Il est supposé que vous avez créé un fork et cloné le dépôt « deafrica-sandbox-notebooks » comme décrit dans la section Se connecter à Git. Une connaissance de la section Git avec le menu Git, y compris des concepts tels que push, pull, branch et commit sera utile. Si vous débutez avec Git, nous vous encourageons à essayer les deux tutoriels.
Assurez-vous d’avoir également mis à jour votre fork pour qu’il corresponde à « digitalearthafrica:master » en sélectionnant Récupérer en amont et Récupérer et fusionner à partir de la page GitHub de votre fork.
Un récapitulatif des raisons pour lesquelles nous créons une branche pour apporter des modifications :
La branche « master » est la branche principale qui contient tout le code le plus à jour et le plus testé
Chaque fois que vous souhaitez ajouter une nouvelle fonctionnalité ou tester du code, vous créez une nouvelle branche
La nouvelle branche contient tout le code de « master », mais les modifications apportées à cette branche n’affectent pas « master ».
Une fois que vous êtes sûr que vos modifications fonctionnent, vous pouvez demander à rajouter vos modifications à « master » dans une demande d’extraction (abordée dans une section ultérieure du guide)
Terminal : une panne
L’interface du terminal comporte deux composants principaux :
Le répertoire actuel dans lequel vous vous trouvez
La ligne de commande, où vous pouvez taper des commandes
Vérifiez que votre clone est à jour
Ouvrez une fenêtre de terminal à partir d’un onglet du lanceur. Vous pouvez ouvrir un nouvel onglet du lanceur en appuyant sur le bouton + en haut du menu du navigateur de fichiers.
Les terminaux démarrent automatiquement dans votre répertoire personnel. Tapez « ls » et appuyez sur « Entrée » sur votre clavier pour afficher tous les fichiers et dossiers de votre répertoire personnel.
Changez le répertoire de votre Terminal vers votre clone du dépôt « deafrica-sandbox-notebooks ». Cela peut être fait en utilisant « cd », la commande « changer de répertoire ». La syntaxe est « cd <nom du dossier>/ ».
Dans le Terminal, tapez :
cd dev/deafrica-sandbox-notebooks/
et appuyez sur « Entrée ». Notez que votre répertoire a maintenant changé : le « $ » est maintenant après « /dev/deafrica-sandbox-notebooks ».
Vérifiez que votre clone est à jour en exécutant :
git pull
Cela récupérera toutes les modifications entre votre fork et ce clone local.
Conseils de terminaux
Appuyez sur la touche Tab de votre clavier pour compléter automatiquement les chemins et les noms de fichiers. Cette méthode est beaucoup plus rapide et généralement plus précise que la saisie manuelle.
Appuyez sur la touche fléchée Haut de votre clavier pour accéder aux commandes du Terminal que vous avez précédemment exécutées. Idéal pour répéter une commande.
Le navigateur de fichiers n’affiche pas dans quel répertoire se trouve votre terminal. L’emplacement du répertoire du terminal et l’emplacement du dossier du navigateur de fichiers sont totalement indépendants.
Le navigateur de fichiers affiche le contenu de la branche dans laquelle vous vous trouvez. Cela signifie que les fichiers d’une branche mais pas d’une autre apparaîtront ou disparaîtront lorsque vous changerez de branche. Par conséquent, il est toujours bon de savoir sur quelle branche vous vous trouvez.
Les commandes du terminal sont sensibles à la casse.
Par convention, le code Terminal est souvent identifié par un « ! » au début de la ligne, mais pour plus de clarté, il ne sera pas utilisé dans ce tutoriel car « ! » n’est pas requis dans Terminal lui-même. (Les notebooks Jupyter permettent d’exécuter des commandes Terminal dans des fichiers « .ipynb » en utilisant des cellules de code commençant par « ! » ; ceci n’est pas abordé ici.)
Tutoriel : Utiliser le Terminal pour créer une nouvelle branche et apporter des modifications
Nous utiliserons le Terminal dans le Sandbox pour :
créer une nouvelle branche ;
ajouter un fichier (cela sera fait à l’aide du navigateur de fichiers, bien que cela puisse être fait via le Terminal) ;
valider les modifications ; et
pousser les modifications vers le dépôt distant.
Vos commandes de terminal peuvent être différentes si vous avez nommé vos référentiels ou branches différemment des exemples fournis ici ou dans le didacticiel Connect to Git, ou s’ils sont situés dans une disposition de dossiers différente.
Créer une nouvelle branche
Dans le Terminal, accédez à votre répertoire « deafrica-sandbox-notebooks » si vous n’y êtes pas déjà.
cd dev/deafrica-sandbox-notebooks/
Créez une nouvelle branche en utilisant la commande « git checkout -b ». « git checkout » se déplace entre les branches et « -b » crée une nouvelle branche.
git checkout -b git-terminal
Vous verrez le message « Passer à une nouvelle branche “git-terminal” ».
Ajouter un nouveau fichier
Ouvrez le navigateur de fichiers. Naviguez. Cliquez sur l’icône Notebook > Python 3 dans le lanceur pour créer un nouveau fichier Jupyter Notebook.
Le fichier s’ouvrira automatiquement.
Tapez quelque chose dans la première cellule du fichier, par exemple « print(« Ceci est une modification de la branche git-terminal ») ». Assurez-vous que le menu déroulant en haut du fichier indique « Code ». Appuyez sur « Maj + Entrée » sur votre clavier pour exécuter la cellule. Cela imprimera le texte que vous avez saisi sous la cellule de code.
Renommons le fichier. Faites un clic droit sur le fichier dans le navigateur de fichiers et sélectionnez Renommer.
Tapez votre nouveau nom de fichier. Ici nous l’avons appelé « my-change ». Son extension de fichier est « .ipynb ».
Valider les modifications : suivre les nouveaux fichiers
Revenez à votre onglet Terminal et exécutez
git status
Cela affichera une sortie indiquant la branche actuelle et les fichiers non suivis, tels que le nouveau fichier que vous venez de créer.
Comme suggéré dans la sortie du terminal, nous utilisons « git add <filename> » pour commencer à suivre le fichier.
git add my-change.ipynb
Exécutez à nouveau « git status » pour voir que le nom du fichier est devenu vert et qu’il n’indique plus « non suivi ».
Revenez à « my-change.ipynb » et ajoutez du texte ou du code. Enregistrez le fichier.
Revenez à l’onglet Terminal et exécutez à nouveau « git status ». Les modifications s’affichent comme des modifications non mises en scène.
Exécutez à nouveau « git add my-change.ipynb » pour inclure les nouvelles modifications dans votre commit.
Lorsque toutes les modifications que vous souhaitez apporter à ce commit sont préparées, exécutez la commande
git commit -m "This is a brief description of my commit."
Le texte entre guillemets doit être remplacé par une brève description du commit.
Exécutez à nouveau « git status » et vos modifications validées auront disparu. La sortie indiquera « rien à valider, arbre de travail propre ».
Valider les modifications : définir en amont
La manière la plus simple de configurer en amont est la suivante :
Courir:
git push
Cela vous donnera le message d’erreur « fatal : la branche actuelle git-terminal n’a pas de branche en amont. ». Il vous proposera une commande qui ressemble à :
git push --set-upstream origin git-terminal
Le code suggéré est généralement correct. Utilisez votre souris pour copier la ligne de code suggérée. Copiez en appuyant sur « Ctrl+C » puis cliquez sur le curseur de texte de votre ligne de commande. Collez en utilisant « Ctrl+V » et appuyez sur « Entrée » pour exécuter.
Saisissez votre nom d’utilisateur GitHub et votre jeton d’accès personnel ou similaire, comme demandé.
Pousser les modifications validées
Revenez à l’onglet Terminal. Exécutez :
git push
Saisissez les informations d’identification Git comme demandé.
Félicitations, vous avez terminé. Comme suggéré dans la section précédente, vous pouvez maintenant accéder à votre fork sur le site Web GitHub et rechercher votre nouvelle branche, « git-terminal », ainsi que le nouveau fichier visible uniquement à cet endroit.
Liste de contrôle Git avec « git status »
Éléments à vérifier lorsque vous vous connectez au Sandbox et commencez à travailler sur votre projet de code open source :
Avez-vous récupéré et fusionné en amont afin que votre fork soit à jour avec le référentiel d’origine ?
Sur quelle branche êtes-vous ? Est-ce la bonne branche sur laquelle travailler ?
Avez-vous extrait et fusionné les dernières modifications apportées à votre clone à partir de votre fork du référentiel ?
La commande « git status » vous aidera à identifier la branche sur laquelle vous vous trouvez actuellement, ainsi qu’à répertorier les modifications préparées ou non préparées et tous les fichiers non suivis.
Résumé des commandes du terminal
cd <chemin du dossier>
Change le répertoire vers le nouveau chemin du dossiercd ..
Monte d’un cran sur le chemin du dossier (recente d’un dossier)« cd » réinitialise le répertoire à la maison
« ls » affiche les fichiers et les dossiers dans le répertoire actuel
« git status » Résumé de votre dépôt Git
« git pull » extrait les commits de la télécommande vers la locale
git checkout -b <nouveau nom de branche>
Crée une nouvelle branche basée sur la branche actuelle et extrait la nouvelle branchegit checkout <nom de la branche>
Vérifie la branche existantegit add <fichier ou dossier>
Met en scène toutes les modifications dans le fichier ou le dossiergit commit -m "description"
Valide les modifications par étapes dans un commit décrit par la description« git push » envoie les commits au dépôt distant
Avec un peu de pratique, les commandes du terminal sont plus rapides que l’utilisation de l’interface du menu Git et peuvent offrir un plus grand niveau de contrôle et de flexibilité.
Problèmes courants
Erreur de terminal « fatale : ce n’est pas un dépôt Git ». Cela se produit lorsque l’emplacement du répertoire de votre terminal n’est pas un dossier lié à un dépôt Git. Votre répertoire personnel n’est pas lié à Git et votre dossier « dev » n’est pas lié à Git.
Un de mes fichiers a disparu mais je ne l’ai pas supprimé. Vous êtes peut-être sur la mauvaise branche. Exécutez un « git status » pour vérifier votre branche actuelle. Utilisez « git checkout <branch name> » pour vous déplacer entre les branches.
Git n’accepte pas mon mot de passe Git lorsque des informations d’identification sont demandées. Pour des raisons de sécurité, le Sandbox nécessite un jeton d’accès personnel distinct de votre mot de passe ou une autre forme d’authentification multifacteur. Ils sont simples à configurer. Consultez l’article et le guide officiels de GitHub liés à la page Se connecter à Git.
Comme Git est bien documenté en ligne, il est recommandé de rechercher sur Google tous les problèmes lors du dépannage.
Tutoriel wiki GitHub
Une version concise de ce tutoriel est disponible sur le wiki deafrica-sandbox-notebooks. Il contient également des commandes de terminal utiles qui ne sont pas décrites ici.
Prochaines étapes
D’une manière ou d’une autre, vous avez apporté des modifications à votre fork du référentiel. Vous avez créé des branches, validé, tiré et poussé, et votre code est prêt à être vu par le plus grand nombre.
Le seul problème est que ce code se trouve sur votre dépôt GitHub et que personne d’autre ne sait qu’il existe. Il est temps de régler ce problème : la section suivante vous montre comment créer une pull request. Les pull requests permettent aux utilisateurs de proposer des fusions de code entre les dépôts et les branches via un système de révision documenté.
Cliquez sur Suivant pour continuer.