From 5e69cdc7b6edd11a41ef948cab95ae52c35e4241 Mon Sep 17 00:00:00 2001 From: vincent_b Date: Wed, 20 Nov 2024 14:27:49 +0000 Subject: [PATCH] README staged --- README.md | 187 ++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 148 insertions(+), 39 deletions(-) diff --git a/README.md b/README.md index 58842e1..3ef5f4e 100644 --- a/README.md +++ b/README.md @@ -128,27 +128,43 @@ PAGE URL == . . . + + + # OUVRIR ou CLONER +### CHOIX - depuis gitLab/Hub : Edit avec l'IDE (le plus simple) + DO .... RETOUR AU PROJET ---> Code (boutton bleu) ---> Ouvrir avec.... ----> Va ouvrir un IDE... - -## Cloner le projet en entier (travailler en local) -/SI/ on veut cloner+ouvrir le projet en local... -( avec vscode/codium/IDE installé sur l'ordinateur ) -Gitlab va proposer de clonner le projet avant de l'ouvrir avec .... +--> Edit ( à côté du boutton bleu ) +--> **Web IDE** -## depuis le terminal -On peut également cloner le projet depuis le terminal avec : -/SI/ on veut le faire manuellement +- Ouvir 1 fichier... en ligne sur l'IDE embarquée de GitLab... +/SI/ on veut travailler en ligne (IDE GitLab)... +On peut ouvrir un fichier spécifique +EX/ https://gitlab.com/bonnebulle/plain-html-redo/-/blob/main/README.md +--> Edit (boutton bleu) +--> Open in Web IDE... + + + +### CHOIX - depuis le terminal (local) + +On peut également cloner le projet depuis le terminal avec : + +> git clone https://gitlab.com/bonnebulle/plain-html-redo.git + + +#### détail - Terminal commandes (pwd/ls/cd) + +/SI/ on veut le faire depuis Git/Labhub DO .... RETOUR AU PROJET --> Code (boutton bleu) --> Clone with HTTPS (copy https.....monprojet.git) + Dans le terminal aller dans un dossier ou télécharger le projet . . . Chemin actuel @@ -174,19 +190,27 @@ lister fichiers clonés Localiser le chemin du dossier actuel > pwd -## Utiliser l'IDE en ligne -- Ouvir 1 fichier... en ligne sur l'IDE embarquée de GitLab... -/SI/ on veut travailler en ligne (IDE GitLab)... -On peut ouvrir un fichier spécifique -EX/ https://gitlab.com/bonnebulle/plain-html-redo/-/blob/main/README.md ---> Edit (boutton bleu) ---> Open in Web IDE... -# DO Git commandes depuis l'IDE local apres un clone +## PULL (aspirer == télécharger/sync) + + +Une fois un projet cloné.... quand on est dans son dossier on peut télécharger les dernières modifications apportées par les dev dans leur repertoire de travail git (distant).... + +Récupèrer les fichiers tels que présents sur GitLab/Hub +( on récupère l'état de travail des fichiers présents sur le serveur ) +> git pull + +( va prévenir si des modifications difèrent en local ) + + + + + +# Git commandes depuis l'IDE local apres un clone DEPUIS notre IDE, on va pouvoir sauvegarder l'état d'avancement du projet en utilisant GIT ( qui se charge : @@ -212,10 +236,7 @@ Ils permettent... - - - -# TUTOS + COMMANDES +## TUTOS + COMMANDES - Git - Git dans Bash ↳ https://git-scm.com/book/fr/v2/Annexe-A:-Git-dans-d%e2%80%99autres-environnements-Git-dans-Bash @@ -227,24 +248,88 @@ Ils permettent... ↳ https://git-scm.com/book/fr/v2/Annexe-A:-Git-dans-d%e2%80%99autres-environnements-Git-dans-Visual-Studio-Code ---- -## PULL (aspirer) -Récupère les fichiers tels que présents sur GitLab/Hub -( on récupère l'état de travail des fichiers présents sur le serveur ) -> git pull -( va prévenir si des modifications difèrent en local ) -## Etat des fichiers : + + +## Etat des fichiers + processus intermédiaires + +- staged/stash - état intermédaire des fichiers priss en compte (ou pas) +- 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) +( source : https://nulab.com/learn/software-development/git-tutorial/git-basics/ ) + +![](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) +( source : https://www.earthdatascience.org/workshops/intro-version-control-git/basic-git-commands/ ) + + + +Quand un fichier est modifié, pour enregistrer son état actuel, ici, en local.. +... dans un état actuel : **staged** +--> **staged** == "stade" / "état" + +... la version prise en compte se retrouve dans un espace disque de sauvegarde "**satsh**" +... les fichiers dans le **stash** (et leur état **staged**) sera pris en compte durant le prochain **commit** +.... le **commit** permet d'indiquer aux autres utilisateurs quelles modifications ont été apportées au projet +.... 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** ) +..... 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` ! + + +## Etat des fichiers -- staged/stash - status + +On peut voir l'état des fichiers : > git status +EX/ +```bash +Sur la branche main +Votre branche est à jour avec 'origin/main'. + +Modifications qui seront validées : + (utilisez "git restore --staged ..." pour désindexer) + nouveau fichier : NEW_file_ready.md + +Modifications qui ne seront pas validées : + (utilisez "git add/rm ..." pour mettre à jour ce qui sera validé) + (utilisez "git restore ..." pour annuler les modifications dans le répertoire de travail) + supprimé : fullyfly.md + +Fichiers non suivis: + (utilisez "git add ..." pour inclure dans ce qui sera validé) + NEW_file.md +``` + +- "non suivis" == le fichier n'a pas été ajouté (add) en **staged** +- "qui ne seront pas validées" == fichier supprimé dans les fichiers (mais pas avec git rm) +- "qui seront validées" == sont dans le stash (ajoutés) + + +On nous indique alors ceux qui sont modifiés, les quels sont dans le **staged** (ou non) +.. quels fichiers seront compris dans le prochain **commit** (et comment) + +### ADD + +On peu ensuite ajouter l'état actuel de nos fichiers (modifications) au **staged** Ajouter un fichier (ou tous *) > git add ./README.md > git add * +### RM / checkout / restore -Remove du stash (état lattant avant commit + push) +Remove du staged (état lattant avant commit + push) +... Cela ne supprime pas le fichier sur notre ordinateur/serveur (en local) +... mais cela le retire du staged, de la liste des fichiers qui seront affectés par le prochain commit > git rm ./README.md annuler un ajout sur un fichier @@ -255,21 +340,45 @@ restaure -## Commit +## Commit + éditeur -Git commit -( sauvegarder l'état actuel des fichiers locaux ) +( sauvegarder l'état actuel des fichiers locaux ) +( tel que pris en compte dans le **staged** ) > git commit -... on écrit les modifications apportées dans le navigateur text -... on peut installer nano https://command-not-found.com/nano -... ou utiliser vim... +### Editeur - ligne de commande + +/CHOIX/ on peut écrir les modifications directement depuis la commmande + +> git commit -m 'initial commit of my project' + +### Editeur - nano / vim / autres + +/CHOIX/ on écrit les modifications apportées dans l'éditeur de text dans le shell/terminal + +. on peut installer nano https://command-not-found.com/nano + +. ou utiliser Vim ( un autre éditeur )... +... ( les commandes se font au clavier ) +... ( : indique une commande ) +... --> https://vim.rtorr.com +.... .... on tappe -- ESCAPE + ":a" pour rendrer en mod édition .... on quitte+save en tappant -- ESCAPE + ":wq" .... on quitte no_save tappant -- ESCAPE + ":q!" -/OU/ directement depuis la commmande -> git commit -m 'initial commit of my project' +. ou autre éditeur tel VSCodium + +### Editeur - définir par défaut + +/DO/ +> git config --global core.editor nano +( détail : https://git-scm.com/book/fr/v2/Démarrage-rapide-Paramétrage-à-la-première-utilisation-de-Git ) + + + + + ## Log Visualiser les modifications :