Intro Git branches dev co

This commit is contained in:
vincent_b
2024-11-20 21:17:11 +00:00
parent c84dc74ff4
commit 110e5cfa66

View File

@@ -22,7 +22,7 @@ Cloner un projet initial existant
Comprendre le versionning + fork Comprendre le versionning + fork
( sauvegarder l'état d'un projet : "> git commit" + "> git push" ) ( sauvegarder l'état d'un projet : "> git commit" + "> git push" )
Revenir dans le temps à un état de sauvegarde passé Revenir dans le temps à un état de sauvegarde passé
( grace à son identifiant unique : hash ) ( grace à son identifiant unique : hash/SHA )
Auto-héberger une page sur GitLab Auto-héberger une page sur GitLab
( gratuit ) ( gratuit )
@@ -51,7 +51,7 @@ Depuis le terminal dans un dossier au choix
> chromium ./public/index.html > chromium ./public/index.html
1. lister les comit précédents 1. lister les comit précédents
2. revenir à telle version du projet ( + **hash** ) 2. revenir à telle version du projet ( + **hash/SHA** )
> git log --oneline > git log --oneline
> git checkout 117647b > git checkout 117647b
@@ -64,6 +64,34 @@ Depuis le terminal dans un dossier au choix
( affichier le fichier index dans le navigateur pour voir ) ( affichier le fichier index dans le navigateur pour voir )
Une page en FRANCAIS qui résume les principales commandes GIT
https://www.hostinger.fr/tutoriels/commandes-git
( dont l'initialisation et configurat )
! De façon générale, la documentation de Git est libre et en multi langues
https://git-scm.com/docs
## GIT =?= GitLab/Hub
Git est un outil qui permet de créer et gérer des versions d'un projet
On peut ainsi sauvegarder plusieurs fichiers modifiés d'un coup
( en leur attribuant un identifiant unique + hash/SHA ... auquel se référer à l'avenir )
Dans un developement à plusieurs, on peut, grâce à Git, avancer chacun sur une partie de l'écriture du projet
et proposer par exemple des 'Branches' de dev. diférentes/divergentes, avancer sur une partie, tester...
puis revenir en arrière si les modifications ne sont pas satisfaisantes ou posent problème ailleurs.
On peut ainsi avancer sur plusieurs fronts sans trop se géner quand on est à plusieurs sur un même code
On peut aussi, pour les personnes exterieures au projet, observer les évolutions d'une version à l'autre
Une certaine transparence qui peut aider à déceler du code malveillant ou à critiquer certains choix
La maléabilité d'un projet ainsi sauvegardé en de multiples versions aide un dev. souple et continu
Si d'autres dev prennent une direction spécifique (branche) il sera ensuite possible de fusionner nos apports (merges)
Et de régler alors d'éventuels conflits (si, par exemple nous avons travaillé sur la même portion de code)
![roytuts](https://roytuts.com/wp-content/uploads/2021/11/image-70.png)
( source : https://roytuts.com/git-branching-workflows-how-to-work-with-different-branches/ )
@@ -350,7 +378,7 @@ Quand un fichier est modifié, pour enregistrer son état actuel, ici, en local.
.... Je peux indiquer ce qui marche et expliquer les modifications .... Je peux indiquer ce qui marche et expliquer les modifications
.... la dernière étape sera d'envoyer l'état actuel des fichers (**staged/stash**) et le commentaire du **commit** ... au serveur ! .... la dernière étape sera d'envoyer l'état actuel des fichers (**staged/stash**) et le commentaire du **commit** ... au serveur !
... ! Pour l'user : D'autres utilisateur.ices pourrons ainsi se référer à ce point de sauvegarde ... ! Pour l'user : D'autres utilisateur.ices pourrons ainsi se référer à ce point de sauvegarde
..... ( par son nom et son identifiant unique **hash** ) ..... ( par son nom et son identifiant unique **hash/SHA** )
..... restaurer ou étudier le code depuis ce point de sauvegarde ..... restaurer ou étudier le code depuis ce point de sauvegarde
... ! Pour la/le dev : **plutôt que d'envoyer un à un chaque fichier, cette méthode permet de tout synchroniser d'un coup** ... ! Pour la/le dev : **plutôt que d'envoyer un à un chaque fichier, cette méthode permet de tout synchroniser d'un coup**
.... quand le commit est prêt on `git push` ! .... quand le commit est prêt on `git push` !
@@ -490,10 +518,10 @@ préciser la branch à qui envoyer le commit (et fichiers)
# RESET / CHECKOUT (retour vers le passé/futur) # RESET / CHECKOUT (retour vers le passé/futur)
_RESET réinitialise l'état du projet par son **hash**_ _RESET réinitialise l'état du projet par son **hash/SHA**_
_CHECKOUT est moins permanent, il permet de retrouver l'état d'un projet sans réinitialiser l'état des fichiers modifiés_ _CHECKOUT est moins permanent, il permet de retrouver l'état d'un projet sans réinitialiser l'état des fichiers modifiés_
à chaque commit un identifiant unique est créé (hash) à chaque commit un identifiant unique est créé (hash/SHA)
> EX/ 27162d625d6665a824be74c281d07f6894f16888 > EX/ 27162d625d6665a824be74c281d07f6894f16888
On peut retrouver les commit ici ; On peut retrouver les commit ici ;
@@ -507,7 +535,7 @@ En faisant un reset hard on retrouve les fichiers telque durant le dit commit
## RAPPEL Git : REVENIR DANS LE FUTUR ## RAPPEL Git : REVENIR DANS LE FUTUR
**CHECKOUT permet de revenir à l'état d'un commit passé SANS RESET (réinitialiser) les fichiers locaux** **CHECKOUT permet de revenir à l'état d'un commit passé SANS RESET (réinitialiser) les fichiers locaux**
_CHECKOUT marche pour les retour vers une version passée/futur : un commit (hash) /OU/ BRANCHE_ _CHECKOUT marche pour les retour vers une version passée/futur : un commit (hash/SHA) /OU/ BRANCHE_
0. cloner un projet 0. cloner un projet
@@ -521,7 +549,7 @@ Depuis le terminal dans un dossier au choix
> chromium ./public/index.html > chromium ./public/index.html
1. lister les comit précédents 1. lister les comit précédents
2. revenir à telle version du projet ( + **hash** ) 2. revenir à telle version du projet ( + **hash/SHA** )
> git log --oneline > git log --oneline
> git checkout 117647b > git checkout 117647b