Enabling collaborationSetting up aliases for common commands

user a (1)

// sur un dépôt existant, local
// si l'on est pas sur la branch master, on s'y place :
git checkout master
// on met à jour la branche origin/master
// (qui est une représentation locale de l'état d'un dépôt distant,
// ici unique donc pas d'options particulières)
git fetch
// on va maintenant merger ce qui a été fetché dans notre master
git merge origin/master
// à ce stade on est sync
// on va maintenant créer une branche pour notre nouvelle feature
git checkout -b ma_feature
// ici on fait nos modifs, nos add
// et on commit
git commit -m "mon commit"
// on fetch histoire de voir où on en est par rapport au dépôt distant
// et avant de pouvoir faire un push
git fetch
// on push notre branche, en créant un lien tracking
// afin que lorsque par la suite on rebossera sur notre branche
// le lien soit présent et qu'on puisse juste faire push
// sans préciser la cible.
git push -u origin ma_feature

user b

Cet ensemble intervient APRÈS les actions de user a. User b veut voir le travail d'user a.

// on se place sur la bonne branche si besoin, après un git clone si nécessaire
git checkout master
// fetch pour pouvoir voir les modifs d'user a sur le repo distant
git fetch
// on merge, bonne pratique, histoire d'avoir sa branche master à jour
git merge origin/master
// on passe sur la branche ma_feature : en fait on créé la branche à partir
// de la copie du repo distant qu'on vient de sync
git checkout -b ma_feature origin/ma_feature
git log
git show <sha>
// tambouille
// commit
git commit -am "add + commit"
git fetch
git push

user a (2)

git fetch
// on jette un œil avant merge
// l'option -p (patch) va montrer toutes les entrées log
// avec un diff de tous les changements fait pour cette entrée
// ici depuis le pointeur de la version locale de la branche ma_feature avant merge,
// jusqu'au pointeur de origin/ma_feature (ici les mofis d'user b)
git log -p ma_feature..origin/ma_feature
// merge
git merge origin/feedback_form
// si merge fast-forward ok
// si on avait fait des modifs depuis,
// une fois le merge fait, on peut faire un push
// ici on va juste considérer la feature fini et la merger dans master
// on se place donc sur master
git checkout master
// on fetch
git fetch
// on merge si nouveautées fetchées
git merge origin/master
// on merge ma_feature dans master
git merge ma_feature
// on push
git push