> > Git

Git

tags : version gestion projet sauvegarde git svn

Lorsque l'on travaille sur un projet, on effectue des copies régulières de ce dernier qui s'entassent au fur et au mesure et l'on ne sait alors plus quelle est la version fonctionnelle du projet. De plus, lors du passage à une ancienne version, on a souvent de mauvaises surprises. Et si, ajouté à cela, vous travaillez à plusieurs sur un même projet, vous risquez de modifier les mêmes fichiers et ne plus savoir quelles ont été les modifications effectuées.

Git a été pensé pour cela, c'est un système de contrôle des versions de projets. Il permet de gérer les versions en local ou sur des serveurs distants, tout en travaillant seul ou en équipe.

Commandes de base

Récupération d'un projet existant

$ git clone git://url_du_projet.fr/projet	# projet distant
$ git clone dossier_local/			# projet local

Création d'un nouveau projet

$ git init				# initialisation d'un nouveau dépôt dans le répertoire courant
$ git status					# vérification des fichiers modifiés
$ git add fichier.txt				# prise en compte des modifications de fichier.txt
$ git add *					# prise en compte de toutes les modifications
$ git rm fichier.txt				# supression du dépôt et des fichiers
$ git diff fichier.txt				# modification depuis le dernier commit
$ git diff commit1 commit2			# différences entre deux commits

Gestion des commits

$ git pull					# récupération des commits du dépôt distant
$ git push origin master			# envoie des commits sur le dépôt distant
$ git commit -m"Ajout du fichier fichier.txt"	# commit de la version avec un message
$ git log					# historique des commits

Annulation modification

$ git reset --hard HEAD				# annulation de toutes les modifications depuis le dernier commit
$ git revert commit				# restauration de l'état du dépôt tel qu'il l'était au commit commit

Submodule

$ git submodule add git://url_du_projet.fr/projet dossier/du/module	# ajout du projet
					#existant en tant que sous module du projet courant
$ git submodule init		# initialise les sous modules après le clone du parent
$ git submodule update		# mise à jour des sous modules

Windows configuration

$ git config --global core.autocrlf false		# évite les modifications de retour chariot entre windows et linux
$ git config --global core.filemode false		# évite les modifications de droit de fichiers entre windows et linux

Tags / releases

$ git tag		# liste les tags existant
$ git tag -a v1.00 #hash# -m"Nouvelle release"		# Ajout nouveau tag à un hash particulier
$ git push origin --tags	# pousse tous les tags vers le serveur distant (non fait par défaut)