- Avoir git installé sur son poste
- Avoir meld (ou p4merge)
- Avoir un compte github et sa clé ssh déposée
- Avoir PHP 5.3 (ou plus)
- Avoir SQLite 3
- Forker le repository
- Ajouter les droits de commit à deux développeurs sur votre repository
- Chaque développeur clone le repository
$ git clone [email protected]:mon_nom/todo.git
- Mettre à jour composer et récupérer les dépendances
$ php composer.phar selfupdate
$ php composer.phar update
- Initialiser la base de données SQLite (avec ant)
$ ant initdb
- Initialiser la base de données SQLite (sans ant)
$ sqlite3 ./application/data/todos.db < ./application/data/schema.sql
$ chmod ugo+w ./application/data/todos.db
- Démarrer l'application
$ cd ./public
$ php -S localhost:1234
Chaque développeur va implémenter une story de son côté en suivant le workflow http://nvie.com/posts/a-successful-git-branching-model/
- Créer et pousser la branche develop
$ git checkout -b develop
$ git push -u origin develop
- Les autres développeurs récupèrent la nouvelle branche et se positionnent dessus
$ git pull
$ git checkout develop
- Créer une branche
edit
- Appliquer le patch
patchs/edit.patch
$ patch -p1 < patchs/edit.patch
- Commiter
- Faire un rebase sur
develop
- Pousser le commit sur
origin/develop
- Créer une branche
delete
- Appliquer le patch
patchs/delete.patch
$ patch -p1 < patchs/delete.patch
- Commiter
- Récupérer la story 1 sur
develop
- Faire un rebase de
develop
surdelete
- Résoudre les conflits
- Terminer le rebase
- Faire un rebase de
delete
surdevelop
- Pousser le commit sur
origin/develop
- Créer une branche
delete
- Appliquer le patch
patchs/delete.patch
$ patch -p1 < patchs/delete.patch
- Commiter
- Récupérer la story 1 sur
develop
- Faire un rebase de
develop
surdelete
- Résoudre les conflits
- Terminer le rebase
- Faire un rebase de
delete
surdevelop
- Pousser le commit sur
origin/develop
- Mettre à jour la branche develop
- Créer une branche
bootstrap
- Appliquer le patch
patchs/bootstrap.patch
$ patch -p1 < patchs/bootstrap.patch
- Commiter
- Faire un rebase sur
develop
- Pousser le commit sur
origin/develop
[alias]
st = status
co = checkout
lola = log --graph --decorate --pretty=format:'%C(blue)[%ad %an] %C(yellow)%h%d%Creset %s' --date=short --all
- Créer une branche locale et se positionner dessus
$ git checkout -b delete
- Faire un rebase depuis
develop
versdelete
$ git rebase develop delete
- Résoudre les conflits d'un rebase
$ git mergetool -t meld
- Terminer un rebase après avoir résolu des conflits
$ git rebase --continue
- Annuler un rebase qui engendre des conflits
$ git rebase --abort
- Supprimer du répertoire de travail les fichiers et répertoires marqués
untracked
$ git clean -df
- Annuler les changements marqués
not staged
$ git checkout -- .
- Annuler les changements marqués
to be committed
$ git reset HEAD
- Annuler le dernier commit (en conservant les changements associés dans le répertoire de travail)
$ git reset HEAD~1
- Annuler le dernier commit (en perdant les changements associés)
$ git reset --hard HEAD~1