Écrire vos propres histoires avec git

Bonjour à tous 🙂 Avant de continuer avec les textes de la liste de commande, je veux fêter la sortie de git 2.16 en remerciant chacun de ceux qui ont envoyé un patch et chacun des utilisateurs, au total nous avions environ 4000 lignes entre les mises à jour et les corrections , ce qui n'est pas élogieux de ma première version, mais cela parle de votre gentillesse 🙂 Merci! Maintenant, je vais vous dire un petit secret, jusqu'à présent il n'y a pas eu un moment où je ne me suis pas assis pour écrire un article et que j'y ai beaucoup réfléchi, généralement j'écris juste dans une rangée, puis le bon lézard prend la gentillesse corrige mes fautes de frappe 🙂 donc merci à lui aussi.

Ce n'est pas le meilleur quand on parle d'écrire des articles, on suppose qu'il devrait avoir un objectif et construire une structure, et marquer de petits points et des critiques et etc etc ... Maintenant, cela ne s'applique pas seulement aux blogs en général, mais est essentiel dans un logiciel qui prétend être bon 🙂 Pour cette tâche, et après quelques problèmes avec le logiciel de contrôle de version qui a été utilisé dans le développement du noyau il y a quelques années, il est né git ????

Où apprendre git?

La quantité de documentation autour de git est stupéfiante, même si nous prenions simplement les pages de manuel fournies avec l'installation, nous aurions une quantité énorme de lecture. Je trouve personnellement le livre git assez bien conçu, même si j'ai traduit certains des segments de la section 7, il me manque encore quelques-uns, mais donnez-moi du temps 😛 peut-être que ce mois-ci, je pourrai traduire ce qui reste de cette section.

Que fait git?

Git est conçu pour être rapide, efficace, simple et pour prendre en charge de grandes quantités d'informations, après tout, la communauté du noyau l'a créé pour leur logiciel, qui est l'une des plus grandes œuvres conjointes de logiciels libres au monde et en compte des centaines. de contributions par heure dans une base de code supérieure à un million de lignes.

La chose intéressante à propos de git est sa façon de maintenir les versions de données. Dans l'ancien temps (d'autres programmes de contrôle de version) prenait des compresses de tous les fichiers existants à un moment de l'histoire, comme faire un sauvegarde. Git adopte une approche différente, lors de l'exécution d'un commit un point de l'histoire est marqué, ce point de l'histoire a une série de modifications et fonctionne, à la fin de la journée, toutes les modifications sont assemblées au fil du temps et les fichiers sont obtenus pour pouvoir compresser ou marquer comme jalons de versions. Puisque je sais que tout cela semble compliqué, je vais vous emmener dans un voyage magique dans un exemple super basique.

Petit projet de calcul mathématique

La calculatrice sera un programme qui trouvera les carrés d'un nombre donné, nous le ferons en C et ce sera aussi simple que possible, alors ne vous attendez pas à beaucoup de contrôles de sécurité de ma part. Nous allons d'abord créer un référentiel, je le ferai avec Github pour faire d'une pierre deux coups:

Posséder. Christopher Diaz Riveros

Nous avons ajouté quelques éléments assez simples comme la licence (très important si vous voulez protéger votre travail, dans mon cas, forcez-les à partager les résultats s'ils veulent l'utiliser comme base: P)

Passons maintenant à notre cher terminal, git clone est la commande responsable du téléchargement du référentiel situé dans le url attribué et créer une copie locale sur notre ordinateur.

Posséder. Christopher Diaz Riveros

Maintenant, vérifions avec git log ce qui s'est passé dans l'histoire de notre projet:

Ici, nous avons beaucoup d'informations dans différentes couleurs 🙂 essayons de l'expliquer:

la première ligne jaune est le "code-barres de validation". Chaque commit a son propre identifiant unique, avec lequel vous pouvez faire beaucoup de choses, mais nous l'enregistrerons pour plus tard. Maintenant nous avons HEAD de celeste et master vert. Ce sont des "pointeurs" dont la fonction est de pointer vers l'emplacement actuel de notre histoire (HEAD) et la succursale sur laquelle nous travaillons sur notre ordinateur (master).

origin/master est le pendant d'Internet, origin est le nom par défaut qui a été attribué à notre URLet master est la branche dans laquelle vous travaillez ... pour faire simple, ceux qui ont un / sont ceux qui ne font pas partie de notre équipe, mais sont des références à ce qui se trouve sur Internet.

Ensuite, nous avons l'auteur, la date et l'heure et le résumé du commit. Il s'agit d'un petit examen de ce qui s'est passé à ce moment-là de l'histoire, très important dans de nombreux projets et de nombreuses informations sont condamnées. Regardons de plus près ce qui s'est passé lors du commit avec la commande git show <código-de-commit>

Posséder. Christopher Diaz Riveros

La commande git show nous amène à cet écran au format patch, où vous pouvez voir ce qui a été ajouté et ce qui a été supprimé (si quelque chose avait été supprimé) à ce moment de l'histoire, jusqu'à présent, cela nous montre seulement que le records .gitignore,README.mdLICENSE.

Passons maintenant aux choses sérieuses, écrivons un fichier 🙂 nous allons créer le premier jalon de notre histoire 😀:

Posséder. Christopher Diaz Riveros

En bref, nous allons créer un programme qui nous montre le nombre d'arguments passés lors de son exécution, simple 🙂

Posséder. Christopher Diaz Riveros

C'était facile 🙂 voyons maintenant la commande utile suivante: git status

Posséder. Christopher Diaz Riveros

Une âme bienveillante a traduit git pour le rendre facile à suivre, ici nous avons beaucoup d'informations utiles, nous savons que nous sommes dans la branche master, que nous sommes mis à jour avec origin/master(la branche Github), nous avons des fichiers non suivis! et que pour les ajouter, nous devons utiliser git add, essayons 🙂

Posséder. Christopher Diaz Riveros

Nous avons maintenant un nouvel espace vert, dans lequel le fichier que nous avons ajouté à la zone de travail est affiché. Dans cet endroit, nous pouvons regrouper nos modifications pour pouvoir faire un commit, le commit consiste en un jalon tout au long de l'histoire de notre projet, nous allons créer le commit 🙂 git commit

Posséder. Christopher Diaz Riveros

Brièvement expliqué, la ligne jaune est le titre de notre commit, j'écris main.c pour une simple référence visuelle. Le texte noir est l'explication des changements effectués depuis le commit précédent jusqu'à maintenant 🙂 nous sauvegardons le fichier et nous verrons notre commit sauvegardé dans le registre.

Posséder. Christopher Diaz Riveros

Maintenant, nous allons voir l'histoire de notre projet avec git log

Posséder. Christopher Diaz Riveros

Encore une fois dans le journal, nous pouvons maintenant voir que les lignes verte et rouge ont différé, c'est parce que sur notre ordinateur, nous sommes un commit au-dessus de ceux stockés sur Internet 🙂 nous allons continuer le travail, supposons que maintenant je veux montrer un message au cas où l'utilisateur met plus d'un argument dans le programme (ce qui rendrait la calculatrice confuse 🙂)

Comme nous pouvons le voir, notre programme a beaucoup grandi 😀, maintenant nous avons la fonction imprimir_ayuda() qui affiche un message sur l'utilisation des calculs, et dans le bloc main() maintenant nous faisons un examen avec if(Quelque chose que nous verrons dans un tutoriel de programmation à un autre moment, pour l'instant il suffit de savoir que si plus de 2 arguments sont saisis dans la calculamatique, que le programme se termine et l'aide s'affiche. Exécutons-le:

Posséder. Christopher Diaz Riveros

Comme vous pouvez le voir, maintenant il imprime le nombre qui a été livré au lieu du nombre d'arguments, mais que je ne vous avais pas dit auparavant 🙂 pour les curieux echo $? affiche le code de sortie du dernier programme exécuté, qui est 1 parce qu'il s'est terminé par une erreur. Voyons maintenant comment se déroule notre histoire:

Posséder. Christopher Diaz Riveros

Nous savons maintenant que nous avons 1 commit d'avance sur Github, que le fichier main.c a été modifié, créons le prochain commit en faisant git add main.c  et alors git commit????

Posséder. Christopher Diaz Riveros

Maintenant, nous avons été un peu plus précis, puisque nous avons implémenté une fonction et changé le code de validation. Maintenant qu'il a été enregistré, passons en revue notre dernière modification. On peut le voir avec git show HEAD

Posséder. Christopher Diaz Riveros

Maintenant vous pouvez voir les lignes rouges et vertes, nous avons ajouté la bibliothèque stdlib.h, a modifié une grande partie du code et ajouté la fonction à notre histoire.

Maintenant, nous allons voir le journal: (git log)

Posséder. Christopher Diaz Riveros

On voit qu'on est deux commits d'avance sur la version Github, on va égaliser un peu le marqueur 🙂 pour ça on utilise git push origin master

Avec cela, nous disons, envoyez mes commits à l'url origin sur la branche master

Posséder. Christopher Diaz Riveros

Toutes nos félicitations! Maintenant, vos modifications sont sur Github, vous ne me croyez pas? passons en revue 😉

Posséder. Christopher Diaz Riveros

Maintenant, nous avons les 3 commits sur Github 🙂

Résumé

Nous avons abordé les aspects les plus fondamentaux de git, maintenant ils peuvent créer un flux de travail simple dans leurs projets, ce n'est presque rien de la grande variété de choses qui peuvent être faites avec git, mais c'est certainement la chose la plus pratique et la plus quotidienne pour un développeur ou un blogueur. Nous n'avons pas atteint la fin du calculateur, mais nous allons le laisser une autre fois 😉 Merci beaucoup d'être venu et j'espère que cela vous aidera à participer à plusieurs projets 😀 Salutations


7 commentaires, laissez le vôtre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.

  1.   Pablo dit

    Salut ... Je ne sais pas si vous l'êtes, mais je ne vois pas les images de ce rapport ...

    salutations

  2.   Pablo dit

    C'était un problème avec mon navigateur. Honte à la gêne.

  3.   Monde Tecprog dit

    Je dois encore le lire plus en détail, je suis un débutant.

  4.   Facture dit

    Excellent article pour commencer avec git, bien que je recommande de prendre des notes pour comprendre les détails.
    Quelques choses ne m'ont pas été claires:
    quelle est l'option pour Ajouter .gitignore Cbien que je suppose que je le verrai quand je le pratiquerai,
    pourquoi git add main.c doit-il être refait avant le prochain commit git, est-ce que add main.c dit à git de comparer ce fichier avec la version réseau? Ne compare-t-il pas automatiquement tous les fichiers ajoutés pour le suivi?

    1.    ChrisADR dit

      Bonjour Guillermo 🙂 c'est bien que tu l'aies trouvé utile, pour répondre à tes questions:

      .gitignore est un fichier qui indique à git quels formats ou motifs ignorer, dans ce cas, sélectionner C fait ignorer les fichiers .o et les autres générés au moment de la compilation, ce qui est bien car sinon votre git deviendrait fou instantanément de chaque compilation et suivi 🙂 vous pouvez vérifier le grand nombre de formats que git omet dans son template C en faisant cat ou avec un éditeur de texte.

      Bien que git gardera une trace de chaque fichier ajouté à l'arborescence de travail, il est nécessaire de sélectionner spécifiquement les fichiers qui entreront dans le prochain commit, pour vous donner un exemple, supposons que votre travail vous ait conduit à modifier 5 fichiers différents avant être en mesure de voir le résultat. Si vous voulez être un peu plus précis et expliquer ce qui est fait dans chacun d'eux, vous pouvez faire git add file1; git commit; git add file2; git commit… .3,4,5; git commit. De cette façon, votre histoire est propre et les changements bien définis. Et au cas où vous deviez changer quelque chose, ou revenir en arrière (sujets plus avancés), vous pouvez annuler des choses spécifiques ou ajouter des choses spécifiques sans changer le reste.

      J'espère que cela aide 🙂 salutations et merci de demander

    2.    ChrisADR dit

      PS: git add ne dit pas de comparer avec la version sur le réseau, mais avec le commit précédent dans votre ligne de travail, s'il a été local (vert) il le comparera avec celui-là, s'il a été distant (rouge) il le sera comparer avec cet autre. Juste pour clarifier 😉

      1.    Facture dit

        Parfait, bien sûr cela clarifie.