GitDescription et avantages de
Git est la célèbre plateforme de développement. Il devient en fait un standard industriel en raison de son principal avantage : git permet de travailler sur différentes versions du code source. L’idée principale du branchement est de s’écarter du code principal et de continuer à travailler indépendamment de celui-ci. C'est également pratique pour tester des fonctionnalités spécifiques car cela permet de travailler sur une nouvelle partie du code sans se soucier de casser quelque chose dans la version de production. Nous décrirons comment travailler avec git branches plus loin.
La branche est une séquence indépendante de validations, la dernière modification approuvée n'est qu'un "pointeur" qui enregistre l'historique des modifications sous forme d'étapes, liées les unes aux autres. Branche par défaut généralement appelée « principale » ou « maître ».
Création de succursale
Avant de créer la nouvelle branche en mode console, vous devez initialiser git exemple via cette commande :
mkdir /root/gitrepo && cd /root/gitrepo && git init && touch firstfile && git add firstfile && git commit -m "initial commit"
Créez ensuite la branche elle-même :
git branch <new_branch_name>
La branche a été créée mais vous devez "définir" le pointeur sur cette branche avant de pouvoir travailler :
git checkout <created_branch_name>
Vérifions que notre branche est bien créée :
git branch
Envoyer les modifications à la branche
Apportons quelques modifications à notre projet :
echo "First changes" > newfile.one
Validez ensuite ces modifications :
git add newfile.one
git commit -m "First changes commit"
Comparez les succursales
Pour voir les différences entre les branches, utilisez cette commande :
git diff <one_branch>...<another_branch>
Nous verrons qu'un fichier a été ajouté, ces autorisations de fichier et ce message de validation.
Fusion de succursales
Pour envoyer les modifications de la branche de développement à la production, nous utiliserons la fonction "fusionner". Accédez simplement à la branche principale, fusionnez-la avec la branche que nous avons créée et validez nos modifications :
git checkout master && git merge mynewbranch && git commit -m "merges one"
Résolution des conflits
Si deux branches ont un fichier avec un nom identique mais un contenu différent, un conflit de fusion apparaîtra. Simulons et résolvons cette situation.
L'étape suivante, je vais créer un nouveau fichier en deux branches, apporter des modifications différentes à ce fichier dans les branches :
echo "original content" > conflict.file # Create new file
git add conflict.file # Add this file to the master branch's index
git commit -m "Conflict simulation - master, step 1" # Commit changes in the master branch
git checkout -b conflictbranch # Create new branch and checkout into
echo "changed content" > conflict.file # Change the file
git add conflict.file # Add this file to the other branch's index
git commit -m "Conflict simulation - conflictbranch, change 1" # Commit changes in the alternative branch
git checkout master # Go back to the master branch
echo "re-changed content" > conflict.file # Make changes again
git add conflict.file # Add this file to the master branch's index again. You should do this everytime, othervice an error will appear
git commit -m "Conflict simulation - master, step 2" # Commit last changes
Si nous essayons de fusionner ces branches, nous verrons une erreur :
Pour résoudre le problème, nous devons éditer le fichier via l'éditeur. Après le symbole des "flèches", nous pouvons voir la branche où les changements sont placés :
Après cela, nous pouvons réussir la fusion.
Suppression de branches
Pour supprimer une branche, vous devez utiliser cette commande :
git branch -d <branch_name>
REMARQUE: Vous ne pouvez pas supprimer la branche où vous "restez" maintenant (vous devez d'abord consulter une autre branche). De plus, vous serez averti si la branche a des modifications non validées (peut être évité via git branche -D) commande.
Conclusion
Dans cette instruction, nous divulguons les principaux git avantages et a montré quelques fonctionnalités de branche de base.