Basé sur le TD élaboré par Cyril Cecchinel
Et l'aide de Open Classroom pour gérer les configurations.
Un logiciel de contrôle de version permet de conserver un historique des modifications apportées sur des fichiers tout en offrant la possibilité de revenir à une version antérieure. Il existe des logiciels de contrôle de version centralisés et décentralisés.
Dans le cadre des cours de Conception et de Méthodologie de la production d’applications, nous allons utiliser Git.
En ligne de commande avec l'outil Git: Lancez la commande:
git config --global http.sslVerify false
Retrouver le fichier de configuration .gitconfig
situé dans votre répertoire personnel.
Visualiser son contenu. Si besoin, configurer GIT pour que les commits se fassent bien à votre nom :
git config --global user.name "prenom Nom"
Puis votre e-mail :
git config --global user.email moi@email.fr
Pour commencer à travailler avec Git, il y a deux solutions :
Pour l'instant, nous allons prendre la 1e option. Mais par la suite, vous travaillerez de manière collaborative et donc nous prendrons la 2e option.
A Noter, que si vous travaillez sous Github ou BitBucket, en général, on crée le dépôt sur le site puis on le clone.
myRepo
(c'est le répertoire où vous voulez travailler).git init
Menu.txt
contenant les plats de votre restaurant favori, ligne par ligne. Salade norvégienne Œufs fauchés Steak tartare Filet de dorade Profiteroles
git status
Menu.txt
comme git vous l'a dit : git add Menu.txt
git status
.Menu.txt
est maintenant prêt à être versionné. git commit -m "construction de la carte"
ou
git commit
1) Quel message avez-vous en retour?
Menu.txt
. Essayez de commiter ces modifications. Que se passe-t-il ? En vous aidant de la documentation accessible en tapant git help commit, versionnez ces modifications (avec un message décrivant le changement) 2)git log
Et pour voir les modifications apportées par le dernier commit
git log -p -1
et savoir qui fait quoi
git log --stat
ou
git log --pretty=format:"%h - %an, %ar : %s"
etc.
git diff
, visualisez les modifications effectuées entre le premier commit et le second commit. Par exemple git diff 71cfcd6 0c24491
. Attention l'ordre des commits modifie le résultats (un- devient un +).
git log
et récupérez le hash (HASH) du commit où vous souhaitez revenir en arrière.git checkout HASH
git checkout master
git reset --hard HASH
Sauf indication contraire, vous ajouterez les plats séquentiellement dans le menu (les uns après les autres).
Vous êtes chargé(e) d’introduire des plats végétariens dans le menu du restaurant. Ces plats n’ayant pas encore été validés par la cuisine et la direction du restaurant, vous souhaitez travailler sur la carte sans casser la carte existante. La notion de branche permet de passer instantanément d’une version « stable » (branche « master » créée par défaut) du projet à une « version en cours de développement » (n’importe quelle autre branche que « master »)
git branch
git branch vegetarien
git branch
git checkout vegetarien
git merge vegetarien
Que se passe-t-il ? Ouvrez le fichier Menu.txt et vérifiez que la fusion s'est bien passée.
git checkout -b japonais
git branch -d japonais
Jusqu’à présent, vous avez pu expérimenter Git pour gérer localement vos versions. Nous allons maintenant nous intéresser au développement collaboratif de fichier sources. Pour cette partie, mettez vous avec votre groupe de méthodologie.
git init touch readme.txt git add readme.txt git commit -m 'Initializing depot repository' git remote add origin URL git push -u origin master
git remote
La nouvelle référence à origin
vient de la ligne de commande git remote add [nomcourt] [url]
git remote -v
git clone URL
git push origin master
git remote show origin
git pull
git pull
.Git donne la possibilité d’étiqueter un certain état dans l’historique comme important grâce à un « tag ». Ces tags sont couramment utilisés pour marquer des états de publication (e.g. v1.0, v1.1, …). Deux types de tags sont disponibles :
Dans le cadre de cette matière, nous utiliserons que des tags légers. Pour plus d’informations sur le mécanisme de tags annotés, voir les ressources.
git tag michelin17
git tag
Attention ! Les tags ne sont pas poussés automatiquement sur un serveur distant. Il faut demander explicitement à pousser les étiquettes après les avoir créées localement (cf. cheat sheet) ou utiliser l’option –-tags
$ git init myRepo Initialized empty Git repository in /private/tmp/myRepo/.git/
$git clone <URL du repo Git à cloner>
$ git remote add origin <URL du repo Git>
$ git push master origin
$ git pull
$ git status
$ git add <Fichier à ajouter>
$ git commit -m "Premier commit" [master (root-commit) b992814] Premier commit 1 file changed, 5 insertions(+) create mode 100644 Menu.txt
$ git log
$ git checkout -b vegetarien Switched to a new branch 'vegetarien'
$ git checkout master Switched to branch 'master'
$ git branch –d japonais
$ git branch
master
* vegetarien
$ git merge vegetarien
$ git tag michelin17
$ git tag michelin17
$ git push origin michelin17 Total 0 (delta 0), reused 0 (delta 0) To https://github.com/ulrich06/TD_Git.git - [new tag] michelin17 -> michelin17
git push origin --tags
That’s all folks