GNU/Linux >> Tutoriels Linux >  >> Linux

Comment :une introduction à l'utilisation de Git

Présentation

Git est un système de contrôle de version. Il permet de conserver, de modifier, de sauvegarder et de partager de nombreux fichiers tout en conservant automatiquement les enregistrements de toutes les versions précédentes. Ces types de fichiers incluent, mais sans s'y limiter :les fichiers de code, les documents, les contrats, les fichiers HTML et CSS, etc. Tout ce qui est basé sur du texte est utilisable avec Git.

Pourquoi utiliser Git ?

Avez-vous déjà mis à jour un programme, un site Web ou un document uniquement pour souhaiter avoir la version précédente sous la main ? Peut-être que vos modifications ont endommagé le programme ou le site Web, peut-être que vous avez copié et collé des informations sur les flacons. Quoi qu'il en soit, une chronologie des modifications vous ferait gagner du temps et des efforts, ce pour quoi le protocole Git a été conçu.

De plus, Git peut être configuré pour créer des sauvegardes automatiques de n'importe quel fichier lors de l'enregistrement ("validation") d'un fichier ou d'une modification du système. C'est aussi un système rapide et léger :le protocole Git n'enregistre que les modifications que vous avez apportées à chaque fichier, et non chaque fichier individuellement.

Enfin, Git est la norme de l'industrie lorsque vous travaillez avec du code. Il permet à plusieurs utilisateurs d'accéder et de modifier les mêmes fichiers sans conflit, d'apporter une copie locale ("clone") d'un projet sur l'ordinateur d'un utilisateur, de créer une nouvelle copie à des fins de test qui n'affecte pas l'original ("branche" ), ou pour créer une toute nouvelle version ("fork") de votre programme ou de celui de quelqu'un d'autre pour l'éditer d'un simple clic ou d'une commande. Vous pouvez même ramener les modifications d'une branche dans l'original ("fusionner").

Installer un client Git

D'accord, pour commencer avec Git, vous devrez installer un logiciel. Il existe de nombreux clients, mais nous allons nous concentrer sur un pour chaque système d'exploitation majeur.

Installation Windows :

Allez sur http://msysgit.github.io/ et cliquez sur "Télécharger" pour installer le programme.

Page de téléchargement du client Windows Git

Installation Mac OSX :

SourceForge héberge le programme d'installation de Max OSX. Cliquez sur la version qui correspond à votre version d'OSX à télécharger, puis installez le programme.

Page de téléchargement du client Mac OSX Git

Installation Linux :

Pour Debian/Ubuntu :

sudo apt-get install git

Pour CentOS/RedHat/Fedora :

sudo yum install git

Pour les autres distributions Linux ou Unix, vérifiez les options d'installation du package ici.

Comprendre Git

Avant d'aborder les commandes, nous devons passer en revue certaines des principales fonctionnalités et terminologies utilisées avec Git.

Répertoire :La base de données principale où sont stockés tous vos fichiers pour un projet donné.
Index (Staging Area) :L'espace de conservation temporaire des modifications de fichiers que vous allez valider dans le référentiel.
HEAD :pointe vers une branche actuelle où vos modifications seront validées.

Remarque :HEAD est une commande et un pointeur dans le système git. Il est utilisé pour délimiter la "tête", un marqueur qui indique au système la branche actuelle que vous souhaitez modifier.

Blob :le nom d'un fichier dans Git.
Tag  :Une note identifiant le numéro de version d'un document ou d'un morceau de code.
Message  :Une description des modifications apportées avec un commit (mises à jour de fichiers ou balises)
Historique  :Un enregistrement de tous les commits effectués sur la branche ou le référentiel.

Utiliser Git

Ouvrez le programme Git bash que vous avez installé ci-dessus :

Git bash sous Windows

Si vous souhaitez utiliser autre chose que le dossier par défaut pour stocker votre référentiel, créez le nouveau dossier, puis naviguez dans votre client Git vers le bon dossier.

Exemple de navigation vers un dossier :

(Windows)

cd C:/Users/username/foldername/

(Linux/Mac)

cd /Users/username/foldername

username est votre nom d'utilisateur sur l'ordinateur, et foldername est le nom du dossier que vous avez créé.

Création d'un référentiel Git

Une façon de commencer est de créer un nouveau dépôt.

Pour créer un nouveau référentiel, saisissez la commande :

git init

Cloner un référentiel Git

Une autre façon de commencer consiste à cloner un autre référentiel existant. Pour cloner un référentiel existant à partir de GitHub (un site populaire pour stocker et partager des projets à l'aide de Git, décrit plus en détail ci-dessous), entrez la commande :

git clone git://github.com/repositoryname

Pour cloner un dépôt en ligne différent (auquel vous avez accès), saisissez la commande :

git clone [email protected]:/path/to/repository.git

Commettre des référentiels Git

Une fois que vous avez apporté des modifications et que vous souhaitez ajouter ces modifications à votre référentiel, vous suivrez un court processus :

  1. Placez les fichiers à valider dans l'index (zone de préparation)
  2. Engagez-vous dans le dépôt local
  3. Poussez les modifications vers le référentiel distant (si vous travaillez avec un référentiel distant).

Index

Vous devez placer les fichiers que vous validerez à chaque tour dans l'index (ou la zone de transit) avant la mise à jour. Votre client Git ne mettra à jour que les fichiers qui y ont été placés. Pour placer un fichier dans l'Index, entrez la commande :

git add filename

Remarque :Vous pouvez utiliser un point (.) à la place du nom de fichier pour ajouter tous les fichiers actuels dans le répertoire.

git add .

Valider

Pour valider les fichiers ajoutés dans votre référentiel local, entrez la commande :

git commit -m "message"

message est une description de vos modifications de validation. Assurez-vous d'inclure des guillemets.

Astuce :

Pendant que nous y sommes, abordons les commits et les messages. Nous avons vu un exemple ci-dessus, en ajoutant tous les fichiers à un commit. Cependant, la meilleure pratique lors de l'utilisation de Git consiste à ne valider qu'un ensemble de modifications associées à chaque fois. Les commits doivent être de petits morceaux discrets qui peuvent être expliqués par un court message. C'est ce qui rend le contrôle de version (la raison de l'existence de Git) utile. De petits changements peuvent être annulés s'ils causent des problèmes ou s'avèrent plus tard inutiles ou en conflit avec d'autres changements. La validation de grands blocs de modifications non liées rend difficile l'identification de la cause d'un problème ou d'un bogue, le cas échéant. Une bonne règle de base :s'il faut plus d'une phrase ou deux pour décrire votre commit, vous devez commettre des morceaux plus petits.

Appuyer

Maintenant que vos modifications ont été validées, vous pouvez les transférer vers un référentiel distant (si vous utilisez un référentiel distant) :

git push origin master

Le transfert vers un référentiel distant permet aux autres utilisateurs d'accéder aux modifications que vous avez apportées et de les modifier.

Créer, utiliser et fusionner des branches Git

Nous avons brièvement parlé des branches, mais passons en revue.

Une branche est une ligne de pensée distincte pour votre contenu ou votre programme. Par exemple, si vous souhaitez envisager une nouvelle palette de couleurs pour un site Web, vous pouvez créer une ou plusieurs branches du site Web et tester vos différents concepts de palette de couleurs sans affecter le Master. Si vous optez pour un nouveau thème orange, vous pouvez alors fusionner la branche "orange" dans le maître et remplacer l'ancienne palette. Voyons comment cela fonctionne.

Pour créer une nouvelle branche qui hébergera votre palette de couleurs orange, saisissez :

git checkout -b orange

checkout est une commande Git qui bascule entre les branches. Le -b L'option crée une nouvelle branche avec le nom qui la suit - dans ce cas, "orange".

Remarque :Assurez-vous d'avoir enregistré tout le travail que vous avez effectué dans votre éditeur avant de créer une nouvelle branche pour éviter de la perdre.

Si vous souhaitez revenir à travailler sur la branche Master, entrez :

git checkout master

Remarque :Git exige que vous validiez toutes les modifications avant de vous autoriser à changer de branche.

Dans cet exemple, nous allons travailler avec cette nouvelle palette de couleurs, nous allons donc rester avec la nouvelle branche.

Vous validerez la branche avec la même commande que la branche Master.

git commit -a -m "branch demonstrating an orange palette"

Le -a flag ajoute automatiquement tous les fichiers suivis, c'est-à-dire tous les fichiers inclus dans le dernier commit qui ont été modifiés.

Si vous souhaitez pousser votre branche orange vers le référentiel distant, utilisez :

git push origin orange

Si vous êtes satisfait de vos tests et que vous souhaitez inclure les modifications dans votre version principale (votre branche Master), vous souhaiterez fusionner.

Tout d'abord, passez à la caisse de votre branche principale.

git checkout master

Ensuite, utilisez la commande merge pour mettre à jour le Master avec vos informations de branche "orange".

git merge orange

Après la fusion, la branche existe toujours mais n'est plus nécessaire. Supprimez la branche "orange" en utilisant le -d choix :

git branch -d orange

Conflits lors de la fusion

Si vous avez deux branches ou plus qui ont des modifications dans le même fichier, vous pouvez avoir un conflit lors de leur fusion successive. Un exemple de conflit entre une branche "test layout" de votre site Web et votre branche "orange" que vous avez récemment fusionnée dans le Master pourrait ressembler à ceci :

$ git merge orange
<<<<<<< HEAD:index.html
<div id="footer">contact : [email protected]</div>
=======
<div id="footer"> contact us at [email protected]</div>
>>>>>>> test-layout:index.html

Vous serez chargé de modifier les deux fichiers pour qu'ils correspondent dans les zones de conflit, puis d'exécuter la commande pour finaliser la fusion :

git add index.html

Vous pouvez toujours comparer les branches avant une fusion en utilisant le diff commande.

git diff <one-branch> <another-branch>

Tirer et récupérer avec Git

Nous avons expliqué comment envoyer des modifications à un référentiel distant, mais que se passe-t-il si vous travaillez avec d'autres personnes et que vous avez besoin d'accéder aux modifications qu'ils ont apportées ? C'est là que le pull la commande arrive.

L'extraction récupère toutes les modifications apportées au référentiel distant depuis la dernière fois que vous l'avez cloné ou extrait et copie les modifications dans votre référentiel local.

git pull

Si vous souhaitez des mises à jour à distance sans modifier automatiquement votre copie locale pour refléter les modifications, utilisez fetch :

git fetch

Vous avez ensuite la possibilité d'examiner les modifications et de fusionner les mises à jour dans votre Master.

Bifurquer et GitHub

Lors de l'utilisation et de l'apprentissage de Git, vous rencontrerez le terme "fork" ou "forking". Le fork consiste simplement à cloner le référentiel de quelqu'un d'autre dans votre propre espace, où vous pouvez le modifier et créer votre propre version sans perturber la sienne, créant ainsi une version indépendante ou "fork".

Vous rencontrerez également le nom GitHub. Avec GitHub, le fork est simplifié et peut être effectué en un clic :

Bouton fourche sur GitHub

Principalement présenté comme un outil collaboratif, GitHub est un service avec lequel vous pouvez sauvegarder et partager vos référentiels, ou contribuer et bifurquer les projets d'autres personnes. Il existe d'autres services similaires à GitHub, mais GitHub reste l'une des options les plus populaires.

Pour télécharger le client ou en savoir plus, rendez-vous sur Github.

Autres ressources

Il existe de nombreuses sources à partir desquelles apprendre les options avancées de Git. L'une des sources les plus complètes est le livre Pro Git, disponible en ligne.

Et il y a toujours la documentation officielle de Git.

GitHub propose également une liste de lecture de leçons vidéo.

Atlantique.Net

Atlantic.net propose un hébergement VPS ainsi que des services d'hébergement gérés qui incluent une couche de services gérés essentiels à vos forfaits d'hébergement. Contactez-nous dès aujourd'hui pour plus d'informations.


Linux
  1. Comment diviser un iso ou un fichier à l'aide de la commande 'split' sous Linux

  2. Comment fusionner deux fichiers avec AWK ?

  3. Comment limiter la taille du fichier lors de la validation ?

  4. Comment remplir un fichier avec FF en utilisant dd ?

  5. Comment ouvrir un fichier dans vim en utilisant pipe

Comment créer un lien symbolique sous Linux à l'aide de la commande Ln

Comment surveiller les modifications de fichiers à l'aide de fswatch sous Linux

Comment configurer un serveur de fichiers de base à l'aide de simpleHTTPserver

Comment verrouiller un fichier texte sous Linux à l'aide de la commande flock

Comment modifier les autorisations de fichiers à l'aide de FileZilla

Comment bloquer une adresse IP en utilisant .htaccess ?