"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Première fois que je travaille avec Git Remote

Première fois que je travaille avec Git Remote

Publié le 2024-11-08
Parcourir:500

First time working with Git remote

Introduction

Cette semaine, j'ai approfondi ma compréhension de Git, en particulier en travaillant avec les télécommandes Git. Comme condition préalable, la familiarité avec la fusion Git est essentielle lorsqu'il s'agit de télécommandes. La semaine dernière, j'ai partagé ma première expérience avec la fusion Git et discuté de quelques bonnes pratiques. Cette semaine, j'ai appliqué ces connaissances en travaillant sur une nouvelle fonctionnalité, non pas dans mon propre référentiel, mais dans le référentiel d'un collaborateur, celui de mon ami Mayank. Parallèlement, il a travaillé sur une fonctionnalité de mon dépôt, nous permettant de pratiquer la collaboration à distance grâce à Git.

Nouvelle fonctionnalité : prise en charge de la configuration TOML

Actuellement, l'outil que j'ai développé au cours des dernières semaines utilise un ensemble de valeurs par défaut pour des options telles que la température et le modèle, qui sont appliquées lorsque les utilisateurs ne fournissent pas d'arguments spécifiques. L'objectif de cette nouvelle fonctionnalité était d'étendre les fonctionnalités de l'outil en ajoutant la prise en charge de la lecture des paramètres de configuration à partir d'un fichier TOML situé dans le répertoire personnel de l'utilisateur.

Par exemple, si un utilisateur dispose d'un fichier de configuration dans C:\User\Anh\config.toml, l'outil vérifiera désormais l'existence de fichiers .toml dans le répertoire personnel de l'utilisateur. Si un tel fichier est présent, l'outil lit le fichier et applique ses valeurs pour définir les configurations par défaut, remplaçant les valeurs par défaut intégrées. Cependant, les utilisateurs peuvent toujours fournir des arguments de ligne de commande, qui auront priorité sur les valeurs du fichier TOML.

Mise en œuvre

Pour implémenter cette fonctionnalité, j'ai utilisé le package toml pour analyser le contenu du fichier de configuration TOML :


import * as toml from 'toml';


Étant donné que l'outil recherchera un fichier .toml dans le répertoire personnel de l'utilisateur, j'ai utilisé le module os intégré de Node.js pour récupérer le chemin du répertoire personnel :


const os = require("os");
const homeDir = os.homedir();


Après avoir rassemblé tous les fichiers du répertoire personnel de l'utilisateur, je les ai parcourus pour trouver les fichiers cachés (ceux commençant par un point .) qui se terminent par .toml. Le premier fichier .toml trouvé a été utilisé comme source de configuration de l'outil.

Remarques

  • L'outil recherchera un « fichier point » caché (par exemple, .config.toml) dans le répertoire personnel, contenant les options par défaut au format TOML.
  • Si le fichier est manquant, l'outil l'ignorera et continuera avec les paramètres par défaut comme dans le fichier config.js.
  • Si le fichier existe mais n'est pas un TOML valide, l'outil se fermera avec un message d'erreur approprié.
  • Si le fichier TOML existe et qu'aucun argument de ligne de commande ne remplace ses valeurs, les paramètres du fichier TOML seront utilisés (par exemple, le modèle par défaut).
  • L'outil ignorera toutes les options non reconnues dans le fichier TOML pour garantir la compatibilité ascendante.

Processus de collaboration à distance

Comme mentionné précédemment, cette semaine impliquait la pratique des workflows à distance Git et la fusion de Git avec Mayank. Pour travailler sur une fonctionnalité de son référentiel, j'ai suivi ces étapes :

  1. Fork and Clone : j'ai forké son référentiel et l'ai cloné sur ma machine locale.
  2. Créer une branche : j'ai créé une nouvelle branche dans ma copie locale et j'ai commencé à travailler sur la nouvelle fonctionnalité.
  3. Commit and Push : après avoir apporté des modifications, je les ai validées dans la branche et j'ai poussé la branche vers mon référentiel forké.
 git push origin 

Une fois que Mayank a poussé ses modifications vers une nouvelle branche et demandé une pull request (PR), j'ai voulu tester son code avant de fusionner. C'est là que git remote est devenu essentiel :

  • Ajouter une télécommande : J'ai ajouté son référentiel en tant que télécommande sur ma machine locale :

  git remote add  


  • Récupérer les commits : j'ai récupéré les derniers commits et branches de son référentiel :

git fetch 


  • Branche de suivi : J'ai créé une branche de suivi pour suivre ses mises à jour sans affecter directement mon dépôt :

git checkout -b  /


Identification et résolution des bogues

Lors des tests, j'ai identifié deux problèmes clés dans la branche Mayank :

  • Mauvaise configuration du répertoire : l'outil ne lisait pas correctement le fichier TOML à partir de la racine du projet au lieu du répertoire personnel de l'utilisateur.
  • Résolution du chemin : le code utilisait un chemin de fichier relatif, provoquant des erreurs lorsque je l'exécutais sur ma machine. J'ai suggéré de passer à un chemin absolu

// Resolve the path to the configuration file
const configPath = path.resolve(__dirname, "../.toml");

// Load configuration from config.toml
const config = loadConfig(configPath);


Après avoir identifié ces problèmes, j'en ai discuté avec Mayank via Slack et j'ai collaboré pour trouver une solution. J'ai également fourni des commentaires directement sur sa pull request. Ce processus m'a donné l'impression de contribuer à un projet collaboratif réel. Une fois satisfait des correctifs, j'ai fusionné sa branche dans la branche principale et je l'ai poussée vers mon référentiel distant.

Conclusion

Ce processus de travail avec les télécommandes Git et de fusion a été incroyablement éducatif. Je me sens désormais plus en confiance pour collaborer sur des bases de code partagées. Auparavant, je me sentais souvent dépassé par les multiples commits et contributions de différents développeurs, mais j'ai désormais un meilleur contrôle et une meilleure compréhension des flux de travail Git.

En travaillant sur cette fonctionnalité et en intégrant les télécommandes Git, j'ai acquis une expérience pratique qui sera inestimable pour les projets futurs.

Déclaration de sortie Cet article est réimprimé à: https://dev.to/anhchienvu/first-temps-working-with-git-remote-5dbl?1 S'il y a une contrefaçon, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3