Commandes GIT - SVN

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 6

https://bitbucket.

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

II. Les principales commandes GIT


● git clone URL//nom_projet.git
● git init
● git remote add origin https://[email protected]/kifouche/gstockback.git
● git remote add origin [email protected]:kifouche/clientjws.git
● git remote rm origin : supprime origin
● git remote : Liste les depots distant
● git status : Affiche l'état du dépôt local
● git add nom_fichier : déplace nom_fichier du “Working area” a “staging area”
● git add . : déplace tous les fichiers du “Working area” a “staging area”
● git add nom_fichier : déplace nom_fichier du “Working area” a “staging area”
● git restore nom_fichier : Annuler les modifications non commités de nom_fichier.
● git commit -m ”first commit”

● 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.

Working area Staging area Git directory Remote


directory
squelette
III. Passage en production
● git checkout -b release/v0.1 : branche de release
● git commit -a -m "Bumped vesrion number to 0.1" : bumper la version
● git checkout prod : Aller à la prod.
● git merge --no-ff release/v0.1 : merger la le version dans la prod
● git tag -a v0.1 : taguer la version

IV. Gestion des versions :


La façon la plus habituelle est d’utiliser trois chiffres séparés par des points X.Y.Z :
1. X (Changement majeur dans l’application) : Subjective.
a. Une refonte technique du logiciel (migration de technologies, refonte du
modèle de données, …)
b. La bonne pratique réserve ce numéro pour les évolutions fonctionnelles de
l’application.
2. Y (Évolutions mineures) : ajout de fonctionnalités, modification de quelques
aspects d’ergonomie, …
3. Z (correspond généralement à des corrections d’anomalies) : Des patchs,
ou des refactors techniques.

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.

2. Résoudre les conflits : La commande svn update


Conflit découvert dans 'machin.c'.
Sélectionner : (p) report, (df) diff complet, (e) édite, (h) aide pour plus d'options :
(p) report : marquer ce conflit pour résolution ultérieure
(df) diff-complet : montrer toutes les différences du fichier fusionné
(e) édite : ouvrir et résoudre manuellement le conflit avec un éditeur
(r) résolu : après édition “e”, utiliser la version résolue
(mf) mien complet : utiliser ma version (ignore les autres éditions)
(tf) autre complet : prendre la version du dépôt (perds mes éditions)
(l) lance : utiliser un outil externe pour résoudre le conflit
(h) aide : afficher cette liste
● svn commit -m “message” : Envoyer les changements au dépôt.
○ Saisir le message au moment du commit;
○ Utiliser un fichier remplit au fur et à mesure des développements.
■ commit - F nom_fichier
3. Affichage de l’historique : possible de spécifier le nom du fichier ou répertoire.
● svn log : Affiche l’historique dans un ordre chronologique inverse.
● svn log -r 5 : 19: Affiche l’historique de la révision 5 à R19 dans l’ordre chrono.
● svn log -r 19 : 5: Affiche l’historique de la révision 5 à R19 dans l’ordre chrono inversé.
● svn log -r 8 : Affiche l’historique de la révision 8.
● Comparaison de révision :
○ Local : svn diff
○ Dépôt
■ svn diff -r 3 regles.txt : Compare regles local à regles R3 du dépôt
■ svn diff -c 3 regles.txt : Compare regles R2 du dépôt à regles R3 du dépôt.
4. Mot-clés de révision :.
● HEAD : La dernière (c'est-à-dire la plus récente) révision présente dans le dépôt.
● BASE : Le numéro de révision d'un élément de la copie de travail. Si l'élément a été
modifié localement, la « version BASE » fait référence à l'élément tel qu'il était sans ces
modifications locales.
● COMMITTED : La révision la plus récente avant (ou égale à) BASE, dans laquelle un
élément a changé.
● PREV : La révision précédant immédiatement la dernière révision dans laquelle un
élément a changé. Techniquement, cela revient à COMMITTED-1.
○ svn diff -r PREV:COMMITTED machin.c : Affiche le dernier changement
propagé concernant machin.c
○ svn log -r HEAD : affiche msg associé à la dernière propagation dans dépôt.
○ svn diff -r HEAD : compare votre copie de travail à la dernière version de
l'arborescence correspondante du dépôt
○ svn update -r PREV machin.c : revient à version -1 pour le fichier machin.c.
Ceci diminue de un la révision de la version de travail du fichier machin.c.

5. Gestion des branches :

● 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.

7. Organisation conseillée du dépôt :


a. trunk : Stocker la « ligne principale » du développement.
b. branches : Contiendra les copies alternatives (ou branches).
c. tags : Contiendra les versions étiquetées.

Vous aimerez peut-être aussi