diff --git a/README.md b/README.md index b6f82f6..d536579 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ Cloner un projet initial existant Comprendre le versionning + fork ( sauvegarder l'état d'un projet : "> git commit" + "> git push" ) 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 ( gratuit ) @@ -51,7 +51,7 @@ Depuis le terminal dans un dossier au choix > chromium ./public/index.html 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 checkout 117647b @@ -64,6 +64,34 @@ Depuis le terminal dans un dossier au choix ( 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/ ) + @@ -329,13 +357,13 @@ https://code.visualstudio.com/docs/sourcecontrol/intro-to-git - puis commit - sauvegarde de cet état de cet état (staged) du projet, - puis envoi - push -![](https://bulle.vincent-bonnefille.fr/pj/git_cours/git_workflow_002-3557173400.png) +![](https://bulle.vincent-bonnefille.fr/pj/git_cours/git_workflow_002-3557173400.png) ( source : https://nulab.com/learn/software-development/git-tutorial/git-basics/ ) -![](https://bulle.vincent-bonnefille.fr/pj/git_cours/explained-git-basic-workflow.png) +![](https://bulle.vincent-bonnefille.fr/pj/git_cours/explained-git-basic-workflow.png) ( source : https://tecadmin.net/basic-git-workflow/ ) -![](https://bulle.vincent-bonnefille.fr/pj/git_cours/git-add-commit-144050348.png) +![](https://bulle.vincent-bonnefille.fr/pj/git_cours/git-add-commit-144050348.png) ( source : https://www.earthdatascience.org/workshops/intro-version-control-git/basic-git-commands/ ) @@ -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 .... 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 -..... ( 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 ... ! 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` ! @@ -490,10 +518,10 @@ préciser la branch à qui envoyer le commit (et fichiers) # 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_ -à chaque commit un identifiant unique est créé (hash) +à chaque commit un identifiant unique est créé (hash/SHA) > EX/ 27162d625d6665a824be74c281d07f6894f16888 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 **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 @@ -521,7 +549,7 @@ Depuis le terminal dans un dossier au choix > chromium ./public/index.html 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 checkout 117647b