====== Mémo Git ====== git est un logiciel de gestion de versions décentralisé. C'est un logiciel libre créé par Linus Torvalds, auteur du noyau Linux, et distribué selon les termes de la licence publique générale GNU version 2. En 2016, il s’agit du logiciel de gestion de versions le plus populaire qui est utilisé par plus de douze millions de personnes4. ([[https://fr.wikipedia.org/wiki/Git|Wikipedia]]) * https://git-scm.com/ ===== Démarrer git ===== Pour démarrer **git** : - Positionnez-vous avec l'explorateur sur un répertoire //(si vous aves déjà un dépôt choisissez le répertoire de votre dépôt)// - Clic-droit, puis choisir entre diverses options, par exemple : Git Bash #démarre git en mode console Mais aussi : Git Gui #démarre git en mode graphique Git Init Here #pour initialiser un dépôt FIXME Démarrez avec ''Git Bash'' pour suivre le guide... ===== Initialiser un dépôt ===== ==== git init ==== ''git init'' est utile au démarrage d'un dépôts sans dépôt distant au préalable. Pour initialiser un dépôt sur votre ordinateur, il faut : - se positionner sur le répertoire de dépôt puis clic-droit + ''Git Bash'' - taper la commande $ git init //Cela fait, un sous-répertoire ''.git'' est créé. Il contient tous les fichiers nécessaires à la gestion du dépôt//. ===== Indexer vos documents ===== #indexer tous les fichiers avec les sous-répertoires $ git add --all #valider l'indexation $ commit -m'votre message' //Pour savoir où vous en êtes :// # indiquer l'état du dépôts $ git status # faire la liste des 4 derniers commits $ git log -4 ===== Revenir en arrière ===== ''git checkout'' permet de désigner une branche comme active. $ git checkout ae6788e #se positionne sur le commit commençant par ae6788e $ git checkout master #on revient à l'état du dépôt courant ===== Dépôt centralisé ===== Un dépôt centralisé permet de partager les mises à jour d'un logiciel. Sur [[https://github.com/|GitHub]] vos dépôts seront en lecture **public**. Par contre la mise à jour du dépôt sera **sécurisé**. ==== Clé SSH ===== Pour accéder au dépôt en mise à jour il faut une clé ''SSH''. Une fois cela fait, fournissez votre clé publique **id_rsa.pub** à l'administrateur du dépôt centralisé. === Générer votre clé SSH === Suivre les étapes [[http://ppe.boonum.fr/doku.php?id=git:documentation&#generer_une_cle_ssh|générer une clé SSH]] FIXME Votre clé privée doit être protégée par une phrase servant de mot de passe appelée ''pathphrase''. ==== git et ssh ==== Chaque fois que vous accéderez au dépôt distant, ''ssh'' vous demandera votre ''PassPhrase''. Pour éviter cela vous devez installer un fichier ''.profile''. Pour cela suivre [[http://ppe.boonum.fr/doku.php?id=git:documentation#git_et_ssh|les indications de la documentation]] //Désormais au démarrage de ''Git Bash'' vous fournirez votre ''PathPhrase''. En cas de besoin il est possible d'actualiser la ''PathPhrase'' :// #tapez ceci et suivre les étapes $ ssh-add ==== git remote ==== La commande ''git remote'' permet de mémoriser un lien permanent depuis votre dépôts vers le dépôts centralisés. # Mémoriser un lien vers le dépôt de l'équipe n # ppe32 est l'alias du dépôt distant $ git remote add ppe32 git@github.com:ppe32w2014/equipen.git #voir la liste des remotes $ git remote -v ==== git push ==== La mise à jour du dépôt **distant** doit être faite : * à chaque mise à jour importante * au moins une fois par PPE # Met à jour le dépôt distant[ppe32] depuis la branche master du dépôt local $ git push github master ==== git pull ==== La mise à jour du dépôt **local** doit être faite : * si besoin... * afin d'être sur d'avoir la dernière version du dépôt distant * avant un git push si nécessaire #dépôt distant:ppe32 $ git pull ppe32 #mise à jour de la branche active