👤Thierry LAVAL 🇫🇷 Contactez moi 🇬🇧
- Github: @Thierry Laval
- LinkedIn: @Thierry Laval
Début du projet le 10/09/2021
Démonstration de l'utilisation de Git avec Github. Ce projet vous permet de prendre en main rapidement Git en association avec Github. Les commandes sont directement saisies dans une console.
J'utilise le terminal sur MAC OS X.
Je liste les commandes de base. Il existe des commandes plus complexes. Des options peuvent être ajoutées aux commandes de base.
git init
: initialisation d'un projet (si le projet est créé depuis github, ne pas utiliser cette commande) ou réinitialisation d'un projet existantgit status
: vérifier le statut, l'état (si modification de fichier) du répertoire de travail (le repository)git add nom_du_fichier
: ajoute un nouveau fichier (du répertoire de travail) à l'indexgit add .
: ajoute tous les fichiers à l'indexgit commit -m "Phrase_explication_détaillée_du_commit"
: ajouter les fichiers de l'index dans un commitgit commit -am "Phrase_explication"
: ajouter les fichiers au repository, directement sans le add si le fichier est déjà ajouté > - update de fichiersgit log
: Voir l'historique des modifications du commit sous forme de listegit checkout [sha_du_commit]
: se positionner sur un ancien commit > - attention le retour à un commit efface les commits les plus récents > - si push après retourgit checkout master
: retour au commit principal > - le derniergit clone [https_ssh_adresse_du_repository_github]
: rapatrier / cloner les sources d'un remote github vers un ordinateur localgit push origin master
: envoyer les modifications des fichiers (le commit) vers github (le remote)git pull origin master
: récupérer les modifications effectuées par d'autres développeurs sur un remotegit pull [url_du_repository]
: récupérer les fichiers d'initialisation en local après la création d'un repository distantgit branch [nom_de_la_branche]
: créer une branchegit checkout [nom_de_la_branche_crée]
: se positionner sur la branche créée (raccourci de création)git checkout -b [nom_de_la_branche]
: créer une branche et se positionner sur la branche crééegit push --set-upstream origin [branche-test-01]
: envoyer la branche créée sur le remote Githubgit push
: envoyer les commit dans la branche créée sur le remote (possibilité d'omettre origin et nom_de_la_branche)git merge [nom_de_la_branche_à_fusionner]
: fusionner les modifications de 2 branches, ici positionné sur master, la branche "nom_de_la_branche_à_fusionner" va fusionner avec la branche master. Attention, rien n'empêche de fusionner master avec une branche secondaire en se positionnant sur une branche secondaire et en codant -> git merge master. Merge ne supprime la branchegit merge [nom_de_la_branche_à_fusionner] --no-ff
oumerge --no-ff [nom_de_la_branche_à_fusionner]
: Merger 2 branches > - méthode récursive > - méthode conseillée pour forcer la création d'un commit et conserver une trace dans l'historique de développementgit branch -d [nom_de_la_branche_à_supprimer]
: supprimer une branche en localgit push origin :[nom_de_la_branche_à_supprimer]
: supprimer une branche sur le remote github (distante)git blame [nom_du_fichier_à_vérifier]
: savoir qui a modifié une ligne de code précise, la commande affiche une liste avec les modifications effectuées sur le fichier ainsi que le nom de la personne qui a fait la modificationshow [identifiant_du_sha]
: afficher le détail précis des modifications sur un fichier et dans un commit précis. L'identifiant du sha est récupéré lors de l'utilisation de la commande blame. Cet identifiant est placé en début de lignegit stash
: mettre de côté des modifications sur un fichier en cours d'écriture (temporairement) > - sans faire de commit > - travailler sur d'autres modifications > - permet alors de faire un commit des modifications sans faire de commit sur les modifications mises de côtégit stash pop
: reprendre le développement en cours sur les modifications mises de côté > - pop supprime les données dans stashgit remote set-url origin [new_url]
: modifier l'url du repository distant > - origin ici (si le nom du repository n'est pas modifié)git commit --amend -m "nouveau_message"
: modifier le dernier message de commit en localgit push [nom_du_remote nom_de_branche] --force ou -f
: envoyer la modification du dernier message sur le repository à distancegit remote add [nomcourt] [url]
: Ajoute un dépôt distant au repository localgit reset [nom_du_fichier]
: Efface le fichier de l'indexgit reset HEAD [nom_du_fichier]
: Efface le fichier de l'indexgit push --set-upstream origin master
: permet d'utiliser la commande simple git push (sans origin master)git rebase -i [numero_commit]
: "naviguer" dans les commit > - "retour en arrière" > - permet de modifier la description d'un commit par exemple > - le mode interactif (i pour interactive) ouvre l'éditeur > - attention ne jamais modifier un ancien commit public sur lequel travaille plusieurs personnesgit reset --hard HEAD^
: permet d'annuler un merge branch en local > - si le push sur le repository n'est pas faitgit checkout -f
: 'annuler' une suppression > - si non commitée
git remote
: affiche les dépôts distantsgit remote add [remote_name] [url: -> git://github.com/to/project.git]
: ajoute un dépôt distantgit fetch [nom-distant -> ex : origin]
: récupère et tire toutes les données sous sa propre branche sans merge (fusion) ajoutées au dépôt distant > - recommandégit pull
: récupère et fusionne une branche distante > - si clone récupère origin > - plus confortable si certain des modificationsgit push [remote -> origin] [branche -> master]
: pousse les modifications sur un dépôt distant (origin) et dans la branche spécifiée (ici master)git remote show [nom_distant_repository -> origin]
: inspecte le dépôt distant (origin)
git config --list
: lister la configgit config --global color.ui false
: désactive les couleurs
mkdir
: créer un répertoirerm -rf
: effacer un dossier et ses fichiers (tous même les protégés sans alerte)cd [nom_dossier_créé]
: se placer dans le dossier crééecat [nom_du_fichier]
: lire le contenu d'un fichier par l'intermédiaire d'un terminal
- Coder
- Commit
- Push
- Créer un repository sur Github avec uniquement un fichier README et .gitignore (optionnel)
- Sur la machine de développement (Ex sur MAMP), dans le dossier htdocs (si git est configuré), cloner le repository
- Pour cela dans la console -> saisir :
git clone [url_https]
- Le dossier est rapatrié sur la machine
- Cela permet ensuite de pusher directement avec le raccourci ->
git push
et nongit push origin master
- Origin : nom du remote par défaut si remote unique dans un projet
- Master : nom de la branche principale d'un repository
- Une branche : "un autre chemin" pour tester, expérimenter, modifier le code existant du "chemin principal" (master) ou bien créer une nouvelle fonction sans toucher au code master
Le commit est la validation (l’enregistrement dans un dépôt sur l’ordinateur de travail) d’un ou plusieurs fichiers qui ont été placés préalablement dans un index. Cet index est préparé et enrichi grâce à la fonction commit add nom_du_fichier
.
On peut définir le commit comme un instantané (à moment T) ou une capture ("figée") des fichiers qui composent un projet > - une version d’un projet.
Pour valider les modifications des fichiers placés dans l’index (pour les "figer" dans le temps) on utilise la fonction git commit
.
Cette opération s’effectue en local.
Les fichiers ne sont pas encore envoyés sur le remote (dépôt, repository ou référentiel) à distance.
Ils seront envoyés grâce à la fonction git push nom_du_remote nom_de_la_branche
.
La commande git log permet de voir tout l’historique des commit sous forme de liste.
On trouve dans cette liste pour chaque commit :
- la clé unique sha du commit,
- l’auteur du commit,
- la date du commit,
- l’explication (normalement clairement détaillée) sous forme de commentaire du pourquoi du commit (création d’un fichier, modification de texte, ajout d’un fonction, d’une définition etc.).
La branche principale d’un projet, par défaut, est appelée "master"
Cette branche est composée de l’ensemble des commit du projet. On peut définir la branche comme étant un pointeur vers le dernier commit en cours.
La branche est une sorte de route linéaire. On peut revenir en arrière et pointer sur un ancien commit pour récupérer une ancienne portion de code ou un fichier écrasé.
Dans cette branche on retrouve l’intégralité des fichiers du projet en cours.
Lorsque l’on souhaite tester un code ou développer une fonction complémentaire on créée une ou plusieurs branches secondaires ("parallèles" à la branche master).
Une fois les tests effectués et les contenus validés sur cette ou ces branches secondaires, on peut les fusionner avec la branche principale.
git version
:vérifie la version installée- Sur MAC, télécharger le dernier dmg ou utiliser homebrew
Langages | et Applications |
---|---|
Firefox développeur | Visual Studio Code |
Git/GitHub | html/css |
N'hésitez pas à contribuer, en ouvrant une issue.
♥ Love Markdown
FAN DE GITHUB !