Plus de commits en
pratique
Je peux commiter sans impacter personne, sans que ça
se voit, je peux editer/delester/regrouper mes
commits avant de publier : donc je le fait plus
souvent.
Decouple VCS de l'accès à
l'infra
Je commite dans l'avion, dans le train, pendant que
mon serveur est hors service.
Decouple VCS de
l'Existance de l'infra
Je peux utiliser sans jamais avoir un serveur quelque
part. Où avant qu'il soit prêt.
d'abord on un indexe des
changements
on apelle ça "stage":
J'ai fait des changements, garde les dans le
colimateur, il a d'autres fortement associés que je dois
finir.
git add <nom du fichier>
disons git add test.txt.
notez que le message de git status change.
puis:
git commit
J'ai fini un sous ensemble de modifications qui sont
liés, je veux donner a eux une description.
Petit commits frequents :
plus de souplesse et
pouvoir
on peut mieux choisir quoi reverter dans le futur
on peut toujours regrouper des petits commits dans un
seul plus grand (squash)
les numero de version
unique sont indigestes
Je veux donner un nom a une version spécifique
git tag <nom de la
version>
git tag 1.0
git tag publiee_dans_la_newsletter_octobre_2012
git branch -d <branche a
effacer>
on a pas besoin de griller des neurones a inventer de
tres bons nos pour des branches temporaires qu'on
effacera juste après
On a toujours une
branche
celle par defaut s'apelle master
gestion de version
sur les idées
que je peux, finalement, abandoner sans rien toucher
de mon historique
J'évite une infinité de
problèmes.
99% des fois que j'aide quelqu'un avec un "problème"
sur git: le problème n'aurait jamais existé si la
personne au depart de son changement avait crée une
branche!
Partie III : Git avec des
remotes
"serveurs distants"
prendre une copie d'un
depot distant
elle deviendra locale, une reference au depot distant
sera faite sur le nom par defaut origin
git clone <url du depot>
git clone https://github.com/malk/git-playback.git
ajouter un remote
pour les même projet on peut avoir beaucoup
genre un du client, un pour chaque collaborateur, etc.
git push <remote>
<branche>
git push --tags origin master
l'option tags fait un push des tags créees aussi
Avant tout push
● Un petit git status
○ Suis-je au bon endroit? sinon checkout.
○ Il manque quelquechose a comitter? on ne push que
HEAD!
● Je fait un pull de la branche distante
● J'incorpore tout, événtuel, changement
● resout tout, éventuel, conflit: les
commiter.
● C'est bon je peux "pusher".
Suivez cette checklist
ça vous évitera des soucis!
Partie IV : Gestion de
projet
On doit produire de choses ensemble: évitons le chaos
git bisect
on declare des versions comme ayant ou pas le bug (on
teste a chaque fois) et par dichotomie ils nous aide a
retrouver la version qu'a inseré le bug