Table des matières
Gestion des branches
Lister les branches par ordre de date de commit:
$ git branch --sort=-committerdate
Lister les branches avec les commits:
$ git branch -vv
Nouvelle branche
$ git branch <branch>
Pousser la branche sur origin
:
$ git push origin <branch>
Aussi
$ git checkout -b newbranch origin/newbranch
Changer de branche
$ git checkout <branch>
Pour obtenir une branche qui n'est pas locale, mais sur le dépôt distant:
$ git checkout -b <branch> --track origin/<branch>
Retourner à la branche précédente:
$ git checkout -
Liste des branches
git branch -a
Annuler les changements
Pour annuler les changements sans avertissement (à utiliser avec précaution, peut causer la perte de données):
git checkout -- .
Merge
Merge du master à une branche
Ayant une branche localement, on veut récupérer la branche master et la fusionner dans la branche locale. Par exemple, si la base de données a changé, ainsi que le code sur master, on veut récupérer ce changement.
- Commiter les changements sur la branche s'il y a lieu.
- Se mettre sur la branche master et mettre à jour
$ git checkout master $ git pull
- Retourner sur la branche de développement et faire un merge:
$ git checkout <nom_de_la_branche> $ git merge master
- Réparer les conflits s'il y a lieu.
- Faire un commit du merge.
Annuler un merge
Renommer une branche
git branch -m <oldname> <newname>
Renommer une branche remote
$ git branch new-branch-name origin/old-branch-name $ git push origin --set-upstream new-branch-name $ git push origin :old-branch-name
Renommer la branche master
$ git branch --move master main
Supprimer une branche
La branche “branche” existe localement et a été publiée. Elle a été aussi mergée au master.
git branch -D <branch_name>
git push origin :<branch_name>
Git Rebase
La documentation officielle : Git-Rebase
Si on a une branche develop qui a branché de master et qu'on veut inclure les changements de master plus tard dans le temps, en étant sur develop, on peut faire:
$ git rebase master $ git rebase master develop
Outil: Rebase Editor
Squash
On veut squasher les commits :
$ git merge-base develop <nom-de-la-branche>
La commande donne le SHA du nouveau commit.
$ git rebase -i <sha-commit>
Éditer le fichier en gardant le premier pick
et précéder les autres de f
.
$ git push -u origin <nom-de-la-branche> --force