Semaine 05: Git en ligne de commande - semiria/INF2015 GitHub Wiki
Git Bash est déjà installé sur les postes des laboratoires de l'UQAM. Pour installer Git Bash à la maison, consultez les références.
- Manipuler les commandes principales de Git à la console
- Manipuler un dépôt distant sur github
- Git
Les exercices sont une reprise du laboratoire précédant. Le déroulement sera similaire, la seule différence étant que les actions (clone, add, push, etc.) seront exécutées en ligne de commande.
Git utilisera ces préférences pour les log. C'est ce que vous verrez apparaître lorsque vous consulterez les logs sur Github ou en ligne de commande.
- Ouvrir Git Bash
- Changer le nom utilisateur
git config --global user.name "[Nom]"
- Changer l'adresse courriel
git config --global user.email "[Adresse courriel]"
- Créer un nouveau dépôt distant sur Github
- Ouvrir NetBeans et créer un nouveau projet appelé instance1
- Compiler et exécuter le projet
- Ouvrir Git Bash
- Rejoindre l'emplacement de la racine du nouveau projet
cd Documents/demo/inf2015/instance1
- Initialiser le projet Git
git init
- Ajouter le dépôt distant
git remote add origin https://github.com/semiria/semaine5.git
- Ajouter tous les fichiers du projet à l'exception des dossiers nbproject/private/, build/ et dist/
git add src/*
git add build.xml
git add manifest.mf
git add nbproject/*.*
- Vérifier l'état de l'index et s'assurer que les dosssiers nbproject/private/, build/ et dist/ ne sont pas inclut dans
Changes to be committed
Stephanies-MacBook-Air:instance1 mimac$ git status On branch master Initial commit Changes to be committed: (use "git rm --cached <file>..." to unstage) new file: build.xml new file: manifest.mf new file: nbproject/build-impl.xml new file: nbproject/genfiles.properties new file: nbproject/project.properties new file: nbproject/project.xml new file: src/instance1/Instance1.java Untracked files: (use "git add <file>..." to include in what will be committed) build/ dist/ nbproject/private/
- Faire le commit
git commit -m "Commit initial du projet"
- Pousser les modifications sur le dépôt distant
git push origin master
- Créer le fichier .gitignore à la racine du projet
touch .gitignore
- Ouvrir le fichier .gitignore
vim .gitignore
- Ajouter les fichiers à ignorer
- Taper le caractère
i
pour passer en mode édition - Ajouter tous les fichiers et dossiers à ignorer (voir exemple d'un .gitignore plus bas)
- Taper la touche
escape
pour sortir du mode édition - Taper
:wq
pour quitter le mode VIM en sauvegardant les modifications
- Taper le caractère
- Ajouter le fichier .gitignore à l'index
- Faire le commit
- Pousser les modifications sur le dépôt distant
#Exemple .gitignore pour NetBeans
# NetBeans #
nbproject/private/
build/
dist/
- Rejoindre l'emplacement où le projet sera cloné
cd /Users/mimac/Documents/demo/inf2015
- Cloner le dépôt distant
- Récupérer l'URL https du dépôt distant créé précédemment
-
git clone https://github.com/semiria/semaine5.git instance2
Noter que instance2 correspond au nom du répertoire dans lequel le projet sera cloné
- Dans NetBeans, ouvrir le projet java instance2
- Dans NetBeans, modifier la méthode main
- En ligne de commande, rejoindre l'emplacement de l'instance 2
- Ajouter le fichier modifié à l'index
- Faire le commit
- Pousser les modifications sur le dépôt distant
git push origin master
- En ligne de commande, rejoindre l'emplacement de l'instance 1
- Télécharger la dernière version du dépôt distant
git pull origin master
- Dans NetBeans, modifier la méthode main
- En ligne de commande, rejoindre l'emplacement de l'instance 1
- Ajouter le fichier modifié à l'index
- Faire le commit
- Afficher les logs
git log
- Remarquer le dernier message de commit
- Entrer
q
pour quitter les logs
- Répéter les étapes 1 à 3
- Faire le commit amend
git commit --amend -m "[Message]"
- Afficher les logs et remarquer que le commit de l'étape 2 a été changé pour le commit de l'étape 5
- Pousser les modifications sur le dépôt distant
- Dans NetBeans, modifier la méthode main à la même ligne que l'exercice précédant
- En ligne de commande, rejoindre l'emplacement de l'instance 2
- Ajouter le fichier modifié à l'index
- Faire le commit
- Télécharger la dernière version du dépôt distant. Git indiquera qu'il y a eu des conflits et qu'ils doivent être résolus
- Obtenir la liste des fichiers en conflits
git status
- Ouvrir chacun des fichiers en conflits
- Modifier le fichier de telle sorte que le conflit soit réglé
- Sauvegarder
- Ajouter le fichier modifié à l'index
- Faire le commit
- Pousser les modifications sur le dépôt distant
- Ajouter une méthode à la classe principale du projet
- Ajouter le changement à l'index
- Faire un commit
- Répéter les étapes 1 à 3 3 fois afin d'ajouter 3 commits différents qui ajoutent chacun une nouvelle méthode
commit 5b72cb4e1bd8da97bf8757490624f0e24150f6af Author: Pascal St-Louis <[email protected]> Date: Sat Sep 27 14:35:14 2014 -0400 FonctionC commit 4256bbf2e789768e887248b996d6efb3434c8bad Author: Pascal St-Louis <[email protected]> Date: Sat Sep 27 14:34:26 2014 -0400 Fonction B commit 8bf33f2595bdbf1e5734421f39656ca837578474 Author: Pascal St-Louis <[email protected]> Date: Sat Sep 27 14:33:42 2014 -0400 fonctionA
- Identifier le SHA du commit à annuler (Revert). Le SHA peut être trouvé en faisant la commande git log, ou dans la liste des commits sur gitHub
- En ligne de commande, rejoindre l'emplacement de l'instance sur laquelle vous avez fait vos modifications
- Faire la commande de revert
git revert 4256bbf2e789768e887248b996d6efb3434c8bad
- Pousser les modifications sur le dépôt distant
Aucun solutionnaire ne sera fournit à la fin de cette démonstration.