Tutoriel GitHub et Git pour les débutants
Qu'est-ce que Git ?
Git est un système de contrôle de version distribué et open-source. Il permet aux développeurs et aux data scientists de suivre le code, de fusionner les modifications et de revenir à des versions plus anciennes - AWS. Il vous permet de synchroniser les modifications avec un serveur distant. En raison de sa flexibilité et de sa popularité, Git est devenu un standard de l'industrie car il est compatible avec presque tous les environnements de développement, les outils de ligne de commande et les systèmes d'exploitation.
Comment fonctionne Git ?
Git stocke vos fichiers et l'historique de leur développement dans un dépôt local. Chaque fois que vous enregistrez des modifications, Git crée un commit. Une livraison est un instantané des fichiers actuels. Ces commits sont liés les uns aux autres, formant un graphique de l'historique de développement, comme indiqué ci-dessous. Il nous permet de revenir au commit précédent, de comparer les changements et de visualiser l'avancement du projet de développement - Azure DevOps. Les livraisons sont identifiées par un hachage unique qui est utilisé pour comparer et annuler les modifications apportées.
Un graphique de l'historique du développement
Branches
Les branches sont des copies du code source qui fonctionnent parallèlement à la version principale. Pour enregistrer les modifications apportées, fusionnez la branche dans la version principale. Cette fonction favorise un travail d'équipe sans conflit. Chaque développeur a sa propre tâche et, grâce à l'utilisation de branches, il peut travailler sur la nouvelle fonctionnalité sans l'interférence des autres coéquipiers. Une fois la tâche terminée, vous pouvez fusionner les nouvelles fonctionnalités avec la version principale (branche master). Si vous souhaitez apprendre à cloner une branche, consultez ce tutoriel sur Git Clone Branch.
Ajout d'une nouvelle fonctionnalité au référentiel
Engagements
Il existe trois états pour les fichiers dans Git : modifié, mis à disposition et livré. Lorsque vous modifiez un fichier, les modifications sont enregistrées dans le répertoire local. Ils ne font pas partie de l'historique de développement de Git. Pour créer un commit, vous devez d'abord mettre en scène les fichiers modifiés. Vous pouvez ajouter ou supprimer des modifications dans la zone de mise à disposition, puis présenter ces modifications sous la forme d'un commit accompagné d'un message décrivant les modifications.
Trois états des fichiers dans Git
Quels sont les avantages de Git ?
- Cursus : Il permet aux développeurs de consulter l'historique des modifications. L'historique du développement facilite l'identification et la correction des bogues.
- Intégration de l'IDE : En raison de sa popularité, l'intégration de Git est disponible dans tous les environnements de développement, par exemple VSCode et JupyterLab.
- Collaboration au sein d'une équipe : Une équipe de développeurs peut visualiser ses progrès et, grâce aux branches, elle peut travailler individuellement sur une tâche et fusionner les modifications avec la version principale. Les demandes d'extraction, la résolution des conflits de fusion et l'examen du code favorisent la collaboration au sein de l'équipe.
- VSC distribué : Dans un système distribué, il n'y a pas de stockage centralisé des fichiers. Il existe plusieurs sauvegardes pour le même projet. Cette approche permet aux développeurs de travailler hors ligne et de valider les modifications.
Git pour les projets de science des données
Git permet de contrôler la version des scripts, des métriques, des données et des modèles. En utilisant l'extension Git git-lfs, vous pouvez stocker et versionner une grande base de données et des modèles d'apprentissage automatique. Dans un projet de science des données classique, vous disposez d'un carnet Jupyter, d'un jeu de données, d'un modèle, de métadonnées et de métriques de modèle. Les métadonnées comprennent des fichiers contenant des méta-informations sur le modèle d'apprentissage automatique, les caractéristiques, les paramètres du modèle et les fichiers d'automatisation. Tous ces éléments sont nécessaires pour suivre l'évolution des applications d'IA et résoudre les problèmes.
Le cursus des expériences de science des données aide les scientifiques à revenir sur des modifications accidentelles, à sélectionner la meilleure expérience en fonction de la mesure des performances et à collaborer avec d'autres coéquipiers. Le diagramme ci-dessous montre comment les modifications apportées aux données ou au code affectent les métadonnées et les résultats du modèle. Le cursus de ces changements peut également aider d'autres coéquipiers à trouver une meilleure solution. Apprenez tout sur Git dans le dernier blog de Summer Worsley.
Git pour un projet de science des données
Collaboration avec GitHub
GitHub est une plateforme de développement de logiciels dans le cloud. Il est couramment utilisé pour l'enregistrement des fichiers, le cursus des modifications et la collaboration sur les projets de développement. Ces dernières années, GitHub est devenu la plateforme sociale la plus populaire pour les communautés de développement de logiciels. Les particuliers peuvent contribuer à des projets open-source et à des rapports de bogues, discuter de nouveaux projets et découvrir de nouveaux outils.
Les scientifiques des données et les ingénieurs en apprentissage automatique suivent la voie des développeurs de logiciels et intègrent le flux de travail avec GitHub. Ils peuvent ainsi partager leurs travaux de recherche, permettre la contribution de la communauté et collaborer avec les équipes chargées des données. Vous pouvez trouver toutes sortes de projets, de guides, de tutoriels et de ressources en matière de science des données et d'apprentissage automatique sur cette plateforme. Pour les étudiants, la plateforme est devenue une occasion d'acquérir une expérience professionnelle et de décrocher un emploi dans une entreprise prestigieuse.
Portfolio
La plupart des recruteurs techniques vous demanderont de leur fournir un portefeuille de projets ou un profil GitHub. Cela les aide à déterminer si un candidat convient à leur entreprise. Il est fortement recommandé de créer un profil GitHub et de le mettre à jour régulièrement. Les responsables du recrutement sont toujours à la recherche de candidats très expérimentés dans le développement de logiciels et qui contribuent à des projets de logiciels libres. La capacité à analyser le portefeuille GitHub les aide à préparer les questions pour les entretiens techniques.
Profil GitHub
GitHub permet aux scientifiques des données de présenter leurs projets et peut également compter comme expérience professionnelle dans votre CV. La présentation de projets de portefeuille crée également des opportunités de travailler ensemble, de lancer une startup et d'effectuer des travaux de recherche.
Projets de portefeuille
Caractéristiques
GitHub propose également d'autres fonctionnalités tout aussi importantes que la présentation d'un portfolio. Il est nécessaire d'apprendre à connaître chaque fonctionnalité afin de pouvoir les intégrer dans vos projets de science des données.
- Source ouverte : GitHub offre un écosystème complet pour les projets open-source. Vous pouvez parrainer des responsables, contribuer à un projet, utiliser l'outil open-source dans votre projet existant et promouvoir votre travail.
- Collaboration communautaire : GitHub est devenu une plateforme communautaire où les problèmes, les demandes de fonctionnalités, le code et les contributions à la documentation peuvent être discutés.
- Explorez : L'onglet Explore de GitHub vous aide à découvrir de nouveaux projets, des outils en vogue et des événements pour les développeurs.
- GitHub Gists : Vous pouvez partager l'extrait de votre code ou l'intégrer dans un blog ou un site web.
- CLI GitHub : Il vous permet d'effectuer des demandes de fusion, de réviser le code, de vérifier les problèmes et de suivre la progression à partir du programme en ligne de commande.
- Stockage gratuit : stockage illimité des dépôts privés et publics.
- Hébergement web : Vous pouvez publier votre site portfolio ou votre documentation. Les pages GitHub permettent de créer et de déployer facilement un site web.
- Codespace : un environnement de développement cloud intégré à votre dépôt GitHub.
- Projet : un outil personnalisable et flexible pour planifier et suivre le travail sur GitHub.
- Automatisation : GitHub Action automatise les processus de développement tels que la construction, le test, la publication, la mise en production et le déploiement.
- Parrain : Vous pouvez soutenir votre projet open-source ou vos développeurs préférés en payant une redevance mensuelle ou unique. Il permet également aux développeurs d'utiliser des plateformes de paiement tierces telles que ko-fi.
Commandes de base
Avant de nous lancer dans la gestion de projets de science des données, découvrons les commandes Git les plus courantes que vous utiliserez dans tous les projets de science des données. Les commandes de base comprennent l'initialisation du dépôt Git, l'enregistrement des modifications, la vérification des journaux, la transmission des modifications au serveur distant et la fusion.
- git init crée un dépôt Git dans un répertoire local.
- git clone <adresse du dépôt distant> : copie l'ensemble du dépôt d'un serveur distant dans un répertoire distant. Vous pouvez également l'utiliser pour copier des dépôts locaux.
- git add <file.txt> : ajoute un fichier unique ou plusieurs fichiers et dossiers à la zone de transit.
- git commit -m "Message" : crée un instantané des modifications et l'enregistre dans le référentiel.
- git config permet de définir des configurations spécifiques à l'utilisateur comme l'email, le nom d'utilisateur et le format de fichier.
- git status affiche la liste des fichiers modifiés ou des fichiers qui doivent encore être mis à disposition et livrés.
- git push <remote-name> <branch-name> : envoie les commits locaux vers la branche distante du dépôt.
- git checkout -b <nom-branche> : crée une nouvelle branche et bascule vers une nouvelle branche.
- git remote -v : affiche tous les dépôts distants.
- git remote add <remote-name> <host-or-remoteURL> : ajoute un serveur distant au dépôt local.
- git branch -d <nom-branche> : supprimer la branche.
- git pull fusionne les commits dans un répertoire local à partir d'un dépôt distant.
- git merge <branch-name> : après avoir résolu les conflits de fusion, la commande fusionne la branche sélectionnée avec la branche courante.
- git log affiche une liste détaillée des modifications apportées à la branche courante.
Développement complet avec GitHub
Si vous souhaitez apprendre d'autres commandes, consultez l'aide-mémoire G it de Gitlab.
Pour commencer
Dans cette section, nous allons utiliser Git pour suivre un projet de science des données et GitHub comme serveur distant. Nous apprendrons à installer Git, à créer et à cloner un dépôt à partir de GitHub, à exécuter des expériences d'apprentissage automatique et à pousser des changements (notebook, modèle, données) vers GitHub à l'aide de Windows PowerShell 7.
Installation de Git
Git est compatible avec tous les systèmes d'exploitation. Vous pouvez l'installer à l'aide d'outils en ligne de commande ou télécharger et installer directement le programme d'installation.
Linux
Pour les systèmes d'exploitation basés sur Debian/Ubuntu, utilisez `apt-get install git`, et si vous utilisez un autre système basé sur Linux, consultez la liste complète des commandes d'installation ici.
macOS
Si vous avez installé homebrew, utilisez cette commande pour télécharger et installer Git : `brew install git`. Vous pouvez également télécharger le programme d'installation binaire et l'exécuter.
Windows
L'installation de Git sur Windows se fait sans problème. Il vous suffit de vous rendre sur la page de téléchargement, de cliquer sur la version spécifique de Windows, puis de télécharger et d'installer le programme d'installation. Si vous avez un outil winget, vous pouvez l'installer en tapant `winget install --id Git.Git -e --source winget` dans PowerShell.
Après avoir installé Git, assurez-vous d'avoir configuré le nom d'utilisateur et l'adresse électronique. Ces informations sont utilisées pour signer les commits.
git config --global user.name "your-user-name"
git config --global user.email "your@email.com"
Pour plus d'informations sur l'installation de Git, cliquez ici.
Initialisation du projet
Si vous avez un compte GitHub, cliquez sur le bouton + et sélectionnez un nouveau dépôt. Ensuite, tapez le nom du dépôt et ajoutez une description simple. Il créera un dépôt public vide.
Création d'un projet
Il existe de nombreuses façons de cloner des dépôts distants dans le répertoire local, et GitHub fournit un guide détaillé sur la façon de cloner, d'ajouter des dépôts distants et d'initialiser un projet Git.
GitHub Clone
Nous pouvons simplement cloner le référentiel en fournissant un lien HTTPS. Assurez-vous d'être dans le répertoire de travail en utilisant l'invite de commande ou PowerShell.
git clone https://github.com/kingabzpro/DataCamp-Git.git
>>> Cloning into 'DataCamp-Git'...
>>> warning: You appear to have cloned an empty repository.
cd .\DataCamp-Git\
OU
Créez un nouveau répertoire appelé "DataCamp-Git" et initialisez Git à l'aide d'une simple commande. Ensuite, ajoutez une connexion au dépôt distant afin de synchroniser votre travail avec GitHub.
mkdir DataCamp-Git
cd .\DataCamp-Git
git init
>>> Initialized empty Git repository in C:/Repository/GitHub/DataCamp-Git/.git/
git remote add origin https://github.com/kingabzpro/DataCamp-Git.git
OU
Si vous avez déjà un projet dans un répertoire, initialisez simplement Git en utilisant `git init` et ajoutez GitHub remote, comme indiqué ci-dessus.
Engagement simple
Avant d'ajouter des fichiers à notre référentiel, assurez-vous que vous êtes dans le bon répertoire local.
Nous allons commencer simplement et créer un fichier README avec le titre DataCamp-Git. Ensuite, nous allons l'ajouter à la zone de staging en utilisant `git add`.
echo "# DataCamp-Git" >> README.md
git add README.md
Le statut Git montre que nous sommes sur la branche principale et que le fichier `README.md` est mis en scène et prêt à être livré.
git status
>>> On branch main
>>> No commits yet
>>> Changes to be committed:
(use "git rm --cached ..." to unstage)
new file: README.md
Pour créer notre premier commit, nous allons utiliser `git commit` avec un message. Comme nous pouvons le constater, le premier commit est ajouté sous le hachage ed9c886.
git commit -m "first commit"
>>> [main (root-commit) ed9c886] first commit
>>> 1 file changed, 1 insertion(+)
>>> create mode 100644 README.md
Ajout de fichiers de projet
Nous utiliserons l'espace de travail DataCamp MasterCard Stock Price avec LSTM et GRU et nous téléchargerons des fichiers. L'auteur du projet a prétraité les données et les séries temporelles d'entraînement sur les modèles LSTM et GRU. Pour en savoir plus sur le projet, lisez le tutoriel sur les réseaux neuronaux récurrents (RNN).
Pour enregistrer le fichier modèle, nous avons ajouté une nouvelle cellule de code dans le carnet Jupyter du projet. Le nouveau script créera un nouveau répertoire appelé "model" et enregistrera les modèles LSTM et GRU.
!mkdir -p model
model_lstm.save('model/LSTM')
model_gru.save('model/GRU')
Comme nous pouvons le voir, le dépôt Git contient un dossier de données contenant des fichiers CSV, le dossier du modèle avec le poids du modèle et les métadonnées.
Nous allons maintenant mettre en scène tous les fichiers. Vous pouvez ajouter n'importe quel répertoire, fichier ou donnée après la commande initiale.
git add .\data .\model LSTM_GRU.ipynb RNN.png
OU
Si vous souhaitez ajouter tous les fichiers à la zone de transit, utilisez dot.
git add .
Engager et pousser
Nous allons livrer tous les changements avec un simple message, et la sortie montre tous les nouveaux fichiers en mode création.
git commit -m "project files added"
>>> [main aa3e19a] project files added
>>> 10 files changed, 5020 insertions(+)
>>> create mode 100644 LSTM_GRU.ipynb
>>> create mode 100644 RNN.png
>>> create mode 100644 data/Mastercard_stock_history.csv
>>> create mode 100644 data/Mastercard_stock_info.csv
>>> create mode 100644 model/GRU/saved_model.pb
>>> create mode 100644 model/GRU/variables/variables.data-00000-of-00001
>>> create mode 100644 model/GRU/variables/variables.index
>>> create mode 100644 model/LSTM/saved_model.pb
>>> create mode 100644 model/LSTM/variables/variables.data-00000-of-00001
create mode 100644 model/LSTM/variables/variables.index
La synchronisation avec le dépôt distant de GitHub nécessite un nom distant et un nom de branche `git push <nom-distant> <nom-branche>`. Si vous n'avez qu'un seul remote et une seule branche, alors l'utilisation de `git push` fonctionnera.
Après `git push`, la fenêtre pop-up vous demandera vos informations d'identification, ajoutez simplement votre nom d'utilisateur ou votre mot de passe GitHub. Vous pouvez également générer des jetons d'accès personnels et les ajouter à la place du mot de passe. Pour en savoir plus, consultez le tutoriel Git Push and Pull.
git push
>>> Enumerating objects: 21, done.
>>> Counting objects: 100% (21/21), done.
>>> Delta compression using up to 4 threads
>>> Compressing objects: 100% (19/19), done.
>>> Writing objects: 100% (21/21), 1.83 MiB | 1.59 MiB/s, done.
>>> Total 21 (delta 2), reused 0 (delta 0), pack-reused 0
>>> remote: Resolving deltas: 100% (2/2), done.
>>> To https://github.com/kingabzpro/DataCamp-Git.git
>>> * [new branch] main -> main
Nous allons vérifier notre dépôt GitHub kingabzpro/DataCamp-Git pour voir si nous avons poussé avec succès les modifications sur le serveur distant. Le dépôt GitHub contient tous les fichiers, données et modèles.
Pousser à distance vers GitHub
Branches Git
Il est recommandé de travailler avec des branches : par exemple, si vous voulez travailler sur la documentation du projet, créez une branche documentation en utilisant `git checkout` ou `git branch`. Apportez des modifications au fichier README et lorsque vous avez finalisé les modifications, fusionnez la branche avec la base.
Dans notre cas, nous avons créé et basculé vers une nouvelle branche appelée `readme`.
git checkout -b readme
Modifions le fichier README en ajoutant une description au projet et en liant l'espace de travail et le tutoriel RNN DataCamp. Ensuite, nous mettrons en scène les modifications et enregistrerons un instantané des modifications avec un message.
git add README.md
git commit -m "project description and links to blog"
>>> [readme f3b8b9b] project description and links to blog
>>> 1 file changed, 8 insertions(+)
Le dépôt distant n'a pas de branche readme. Pour créer une nouvelle branche et y apporter des modifications, nous utiliserons "readme:readme". La sortie de la commande montre que de nouvelles branches ont été créées et que les branches `readme` locales et distantes sont synchronisées.
git push origin readme:readme
>>> remote: Resolving deltas: 100% (1/1), completed with 1 local object.
>>> remote: Create a pull request for 'readme' on GitHub by visiting:
>>> remote: https://github.com/kingabzpro/DataCamp-Git/pull/new/readme
>>> remote:
To https://github.com/kingabzpro/DataCamp-Git.git
>>> * [new branch] readme -> readme
Vous pouvez observer que nous avons poussé avec succès la branche locale vers GitHub avec une version modifiée du fichier README.md.
Branche Readme sur GitHub
Demande de retrait
Cette fonctionnalité est courante dans les organisations. Par exemple, un développeur de logiciels a travaillé sur une nouvelle fonctionnalité et souhaite fusionner les modifications avec la branche principale distante. Nous allons maintenant créer des demandes d'extraction à l'aide de l'interface graphique de GitHub en cliquant sur le bouton de demande d'extraction. Ensuite, sélectionnez la branche readme que nous voulons fusionner avec la base (main). Vous pouvez saisir une explication détaillée des fonctionnalités ajoutées et cliquer sur le bouton "pull request".
Pull request de readme à la branche principale
Le responsable du dépôt comparera vos modifications et les fusionnera lorsqu'elles auront passé tous les tests. Dans notre cas, vous êtes le mainteneur, alors cliquez sur la demande de fusion pour fusionner les changements avec la branche principale.
Fusionner la demande de traction sur GitHub
Félicitations, nous avons créé avec succès une demande d'extraction et l'avons fusionnée avec la branche principale. Vous pouvez consulter les changements sur la branche principale ici.
Si vous voulez voir tous les changements dans votre dépôt git, tapez simplement `git log`, et vous verrez l'historique des changements dans votre projet. Le cursus des modifications dans les projets de science des données est important, et Git nous aide à suivre toutes les modifications, même les grands ensembles de données.
Historique des journaux Git
Conclusion
Les GitOps sont essentiels pour le développement d'applications de données. Ils sont devenus une compétence essentielle pour tous les types d'emplois dans le domaine des technologies de l'information ; même les chercheurs universitaires les utilisent pour partager des codes expérimentaux avec un public plus large. D'autre part, GitHub joue un rôle plus important dans la promotion des projets open-source en fournissant un écosystème de développement de logiciels gratuits pour tous.
Dans ce tutoriel, nous avons appris à connaître Git et GitHub et pourquoi ils sont importants pour les projets de science des données. Le cursus vous présente également les commandes de base de Git et vous offre une expérience pratique sur la façon de suivre les changements dans les données, le modèle et le code. Si vous souhaitez en savoir plus sur Git, suivez un cours d'introduction à Git sur DataCamp. Vous pouvez également découvrir l'importance de la certification GitHub et comment elle peut aider votre carrière.
Devenez ingénieur en données
FAQ Git
Qu'est-ce que Git ?
Un système de contrôle de version distribué à source ouverten. Il permet aux développeurs de stocker, de vérifier et de visualiser les modifications apportées à un projet de développement. Il favorise un travail d'équipe flexible et un flux de travail optimisé.
Que signifie Git ?
Il ne s'agit pas d'un acronyme. Selon son créateur, Linus Torvalds, "Git peut signifier n'importe quoi, selon votre humeur". Il s'agit d'une combinaison de trois lettres aléatoires qui ne sont utilisées par aucune commande UNIX.
Comment cloner un dépôt Git ?
Jous devez taper `git clone <adresse du dépôt distant>` dans un terminal. Vous pouvez cloner des dépôts locaux et distants. Il prend en charge les protocoles SSH et HTTPS.
Comment supprimer une branche dans Git ?
Pour supprimer une branche locale, utilisez `git branch -d <nom_de_la_branche_locale>`, et pour supprimer la branche distante, utilisez `git push <nom_de_la_branche_dela_branche_dela_branche_dela_branche_dela_branche_dela_branche_dela_branche_dela_branche_dela_branche>`.
Comment changer de branche dans Git ?
Basculez vers une branche existante en utilisant `git checkout <nom de la branche>` ou créez et basculez vers une nouvelle branche en utilisant `git checkout -b <nom de la branche>`.
Comment installer Git ?
Pour les systèmes Linux, utilisez `apt-get install git`, et pour les autres systèmes d'exploitation, consultez le site git-scm.com.
Git est-il gratuit ?
Oui, il est gratuit et open-source sous la licence GPL-2.0.
Qu'est-ce que Git Bash ?
Il s'agit d'une application Microsoft Windows qui fournit des utilitaires et une expérience de shell basés sur Unix.
Comment créer une nouvelle branche dans Git ?
Utilisez la commande `git branch <nouvelle-branche> <base-branche>` dans le terminal. Pour créer et passer à une nouvelle branche, utilisez `git checkout -b <nom de la branche>`.
Que fait git pull ?
Il met à jour la version locale d'un référentiel à partir d'un serveur distant, copie toutes les modifications d'un référentiel distant et les fusionne avec le répertoire local. Ce processus nécessite souvent de résoudre des conflits de fusion.
blog
Q2 2023 DataCamp Donates Digest
blog
2022-2023 Rapport annuel DataCamp Classrooms
blog
Célébration de Saghar Hazinyar : Une boursière de DataCamp Donates et une diplômée de Code to Inspire
Fereshteh Forough
4 min
blog
Les 32 meilleures questions d'entretien sur AWS et leurs réponses pour 2024
blog
Les 20 meilleures questions d'entretien pour les flocons de neige, à tous les niveaux
Nisha Arya Ahmed
20 min
blog