Git
git ≠SVN
—> git ne recopie pas tout à chaque fois, un projet est la somme des commits.
GitHub est une interface graphique de git (alternatives : gitlab qui a en plus un kanban, bitbucket…).
Tu peux git push Ă la fois sur github et sur gitlab.
3 espaces de travail : repository de travail windows, repository local, repository distant.
Créer un dépôt en ligne de commande
- créer un dossier Git101
Dans un terminal,
- se placer dans le dossier :
cd dansmonrep
- créer le repository local :
git init(on a un .git dans le repository)
- créer un fichier README.md —> pour l’instant il existe que dans l’espace de travail Windows
- ajouter le fichier dans l’espace de travail local :
git add(.ounomdufichier)
- faire un point d’étape :
git commit -m "mon premier message"
- écrire des choses dans le README.md
- ajouter le fichier dans l’espace de travail local :
git add .et faire un autre point d’étape :git commit -m "deuxieme commit"
Dans GitHub,
- créer le repository distant : repositories > New > sonpetitnom, visibilité,…
Dans le terminal,
- créer la branche main :
git branch -M main
- lier le repository local au repository distant en ajoutant l’origine :
git remote add origin url.git
- envoyer sur le dépôt distant :
git push -u origin main
- s’authentifier
Les branches
Une branche est un univers parallèle où on est seul donc on va toujours créer et travailler dans une branche.
BP : nommer une branche avec les initiales et ce qu’on fait.
- créer une branche :
git branch ls/design
- se mettre sur la branche :
git checkout ls/design
… faire les modifications souhaitées …
git add .
git commit -m "je commit sur ma branche"
- mettre le contenu de la branche sur la principale (fusion = une qui rentre dans l’autre) :
- se positionner sur la branche qu’on veut garder (recevoir) :
git checkout main
- récupérer ce qu’ont fait les autres pendant notre absence :
git pull
- fusionner :
git merge ls/design
- envoyer sur le dépôt distant :
git push
- se positionner sur la branche qu’on veut garder (recevoir) :
Quand on est développeur, on commit, on pull, on push à chaque avancée et quand on a fini (souvent une fonctionnalité), on propose une pull request qui sera validée par la lead dev (compare and pull request).
Créer un dépôt avec un IDE
PhpStorm
On n’envoie pas les fichiers de configuration sur GitHub.
On les ignore grâce au .gitignore, auquel on ajoute le .idea (configuration de PhpStorm). On partage le .gitignore sur git.