$ git checkout -b nouvelle_branche # créee une nouvelle branche à partir de la branche actuelle
$ git push <remote> <remote>/<old_name>:refs/heads/<new_name> :<old_name> # Renommer une branche distante
$ git revert HEAD~3..HEAD # Créée 3 commits annulant les modifications des 3 derniers commits
$ git branch -d branche_a_supprimer # suppression branche en local
$ git push origin :branche_a_supprimer # suppression tag à distance
$ git push origin --delete branche_a_supprimer # suppression tag à distance (alternative)
$ git tag -d tag_a_supprimer # suppression tag en local
$ git push origin :tag_a_supprimer # suppression tag à distance
$ git push origin --delete tag_a_supprimer # suppression tag à distance (alternative)
Submodules
# Déclarer le sous-module et le récupérer
$ git submodule add <url_depot> <submodule_path>
$ git submodule init
$ git submodule update
# Récupération des upgrades
$ cd <submodule_path>
$ git checkout master
$ git pull
# Pousser les modifications faites sur le submodule
$ cd ..
$ git commit -am "bon message de commit"# Récupération upgrade pour chaque submodule
$ git submodule foreach git pull origin master
# Suppression submodule
$ rm -rf <the_submodule>
$ git rm <the_submodule>
Un bon commit
Un bon commit est un commit atomique
il ne concerne qu’une chose et une seule
il est le plus petit possible tout en restant cohérent
on commit ce qui compile avec tous les tests au vert
Un bon message de commit :
Séparer les sujets par une ligne blanche
Limiter la ligne du sujet à 50 caractères
Commencer les phrases par une majuscule
Ne terminez pas les lignes par un point
Utilisez l’imperatif pour le sujet (faites le + court possible)
Max 72 caractères par ligne dans le corps du texte
Utilisez le corps du texte pour le quoi et pourquoi plutot que le comment
Création d’un repository
# Sur le serveur
$ cd <repository_path>
$ mkdir monProjet.git
$ cd monProjet.git
$ git --bare init
$ git update-server-info
$ cd ..
$ chown -R <user>: monProjet.git
# Sur le client - clone du depot vide
$ git clone ssh://<user>@<serveur>/<repository_path>/monProjet.git
# Sur le client - à partir d'un repertoire avec des fichiers
$ mkdir monProjet
$ cd monProjet
$ git init
$ git remote add origin ssh://<user>@<serveur>/<repository_path>/monProjet.git