Commandes GIT - SVN
Commandes GIT - SVN
Commandes GIT - SVN
org/product/
kifoucheammar
formation
w6vuxH8HqUQErywC2QGH
I. GIT ignore
L’URL git proposant des gitignore en fonction de type de projet https://github.com/github/gitignore
# pas de fichier .a ou .b
*.[oa]
# mais suivre lib.a malgré la règle précédente
!lib.a
# ignorer uniquement le fichier TODO à la racine du projet
/TODO
# ignorer tous les fichiers dans le répertoire build
build/
# ignorer doc/notes.txt, mais pas doc/server/arch.txt
doc/*.txt
# ignorer tous les fichiers .txt sous le répertoire doc/
doc/**/*.txt
● git log : sans argument énumère en ordre chronologique inversé les commits réalisés.
● git push origin master
● git pull origin : récupère origin et le merge avec la branche local courante.
● git fetsh : récupère origin et le merge avec la branche local courante.
● git reflog --oneline : affiche l’historique des commit
● git branch n_branche <SHA1 ou master> : creer branche n_branche
● git checkout n_branche : travailler sur la branche n_branche
● git checkout -b n_branche : créer et pointer sur la branche n_branche
● git push -u origin “n_branche” : Intégrer la branche n_branche au repository distant.
● git branch : affiche la liste des branches (branche active en vert)
● git branch -D n_branche : supprimer la branche dans le nom = n_branche en local
● git push origin -d n_branche : supprime n_branche du repo distant.
● git diff <SHA1> <SHA1>
● git diff nom_fichier : afficher les changement dans un fichier
● git reset <Code SHA1>
● git merge nom_branche :
○ git status : voir la branche actuelle (Ex nom_branche);
○ checkout master : se placer sur la branche que nous voulons mettre à jour
○ git merge nom_branche : la branche master est mise a jour.
Merge permet d’avancer la branche courante en incorporant le travail
d’une autre branche. Cette opération joint et fusionne les deux points de
départ de ces deux branches dans un commit de fusion qui est visible
dans le graphe de l’historique (point D).
● git rebase ma_branche :
○ Git checkout nom_branche
○ Git rebase ma_branche
Rebase rejoue sur une nom_branche les commits de ma_branche dans
l’ordre d’apparition à partir du point de séparation. C’est comme si tous les
travaux de ma_branche avaient été réalisés sur nom_branche. Rebase est
transparent dans l’historique et permet de conserver un graphe linéaire.
V. SVN :
1. les principales commandes.
● Repository ou dépôt : c'est le répertoire, sur le serveur Subversion, qui va accueillir
les fichiers du projet ainsi que les données sur les versions.
● Checkout : Obtenir une copie locale de la dernière version d'un projet sur le repository.
● svn import : Copier une arborescence non-suivie en version dans le dépôt.
l'arborescence d'origine (en local) n'est pas transformée en copie de travail. Pour le
faire, il faut faire un svn checkout.
● Update : Mettre à jour la version locale du projet avec la dernière version du serveur.
● svn add truc : Marque le (fichier, répertoire, lien) truc pour ajout. Lors du prochaine
commit, truc devient un fils de son répertoire parent
● svn delete truc : Marque truc pour suppression,
○ Si truc est un fichier ou un rep, il est immédiatement supprimé en local
○ Si truc est un rep, il est marqué pour suppression.
○ Le prochain commit, il est supprimé du la copie de travail (local) et du dépôt.
● svn copy file1 file2 : créer file2 par duplication de file1
○ File2 et systématiquement marqué pour ajoût (svn add file2) ;
○ File2 est ajouter au dépôt au prochain commit ;
○ Dans l’historique de File2 est marqué comme copie de file1.
● svn move file1 file2 : Elle est équivalente à :
○ svn copy file1 file2;
○ svn delete file1.
● svn mkdir dossier : équivalente à :
○ mkdir blort ;
○ svn add blort.
● svn status : Vue d'ensemble des modifications.
● svn status -u -v :
○ -v : afficher même les fichiers qui n’ont pas subi de changement.
○ -u : se connecte au dépôt pour ajouter des infos sur les éléments périmés.
● svn diff : Affiche les changements au format diff unifié.
● svn revert file1 : ramène file1 dans son état d'avant les modifications en le remplaçant
par la copie de l'original stockée dans la zone .svn.
● Branche : Une sous-version de la version principale. On devra alors créer une nouvelle
branche qui évoluera alors indépendamment de la branche principale.
svn copy http://svn.exemple.com/depot/calc/trunk \
http://svn.exemple.com/depot/calc/branches/ma-branche-calc \
-m "Création d'une branche privée à partir de /calc/trunk."
svn switch http://svn.exemple.com/depot/calc/branches/nouvelle-branche
● svn checkout http://svn.exemple.com/depot/calc/branches/ma-branche-calc
● Garder la branche synchronisée :
○ svn status
○ pwd / ma-branche-cals
○ svn merge http://svn.exemple.com/depot/calc/trunk : fusionner tranc avec le
proget du répertoire en cours.
○ svn revert . -R : si problème revenir en arrière.
○ svn commit -m “fusion de MAJ du branche pas trunc” : si pas de problème
● Merge avec le trunk :
○ faire un merge tdu trunk dans la ta branche.
○ pwd /home/user/calc-tronc : aller au projet trunk
○ svn update : s'assurer que la copie de travail est à jour
○ svn merge --reintegrate
http://svn.exemple.com/depot/calc/branches/ma-branche-calc
○ svn commit -m "Fusionner ma-branche-calc dans le tronc !"
○ svn delete http://svn.exemple.com/depot/calc/branches/ma-branche-calc
-m "Supprime ma-branche-calc."
6. Retour en arrière sur des modifications :
● svn merge -c -303 http://svn.exemple.com/depot/calc/trunk
○ Annule la révision 303
● Tag : Une capture du repository à un moment précis. Un tag n'est pas destiné à évoluer,
c'est une version figée.