Outils pour utilisateurs

Outils du site


linux:git (lu 137322 fois)

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
linux:git [13-01-2019 21:50]
edmc73 [Les branches]
linux:git [05-12-2023 13:52] (Version actuelle)
edmc73 [Checkout]
Ligne 3: Ligne 3:
 La base de la base, en gros et en français ;) => http://rogerdudler.github.io/git-guide/index.fr.html La base de la base, en gros et en français ;) => http://rogerdudler.github.io/git-guide/index.fr.html
  
-L'essentiel => http://www.moussu.fr/git/ +Un tuto en français qui va bien => https://www.miximum.fr/blog/enfin-comprendre-git/
- +
-Autre tuto en français et très clair => https://www.atlassian.com/fr/git/tutorial/git-basics+
  
 ===== Installation ===== ===== Installation =====
Ligne 115: Ligne 113:
 Ajouter au commit seulement les fichiers suivi Ajouter au commit seulement les fichiers suivi
   git add -u   git add -u
-Enlever un fichier du commit + 
-  git reset -- lefichier+ 
 +**Le git reset** 
 + 
 +Revenir à l'état d'un commit tout en gardant vos modification local en unstage 
 +  git reset <commit> 
 +  git reset <commit> --mixed 
 + 
 + 
 +Revenir à l'état d'un commit tout en gardant vos modification local en stage 
 +  git reset <commit> --soft 
 + 
 +Revenir à l'état d'un commit en supprimant toutes vos modifications en local !! (pas de retour possible !!!) 
 +  git reset <commit> --hard 
 + 
 + 
 +Enlever un fichier du commit ou plutot, désindexer un fichier 
 +  git reset lefichier 
 +équivalent de  
 +  git reset --mixed HEAD lefichier 
 + 
 + 
 Annuler le dernier commit non encore propagé (n'affecte pas le contenu des fichiers, fait comme si vous n'aviez pas fait git commit) Annuler le dernier commit non encore propagé (n'affecte pas le contenu des fichiers, fait comme si vous n'aviez pas fait git commit)
   git reset HEAD^   git reset HEAD^
  
-Ne plus suivre (unstage) un fichier +Annuler votre dernier commit non propagé (supprime vos modifications et le dernier commit).  
-  git reset HEAD nom_du_fichier ou répertoire+  git reset --hard HEAD^ 
 + 
 + 
 +Le **git revert** (pas de perte d'historique) 
 + 
 +Pour annuler un commit en particulier. Crée un nouveau commit 
 +  git revert <commit> 
 + 
 +Pour annuler un commit sur un fichier en particulier 
 +  git revert <commit> <nom du fichier> 
 + 
 +   
 +Plus d'info sur git reset => https://git-scm.com/book/fr/v2/Utilitaires-Git-Reset-d%C3%A9mystifi%C3%A9 
 Supprimer les modifications faite sur un fichier Supprimer les modifications faite sur un fichier
   git checkout -- nom_du_fichier   git checkout -- nom_du_fichier
Ligne 149: Ligne 181:
 Voir les branches Voir les branches
   git branch   git branch
 +
 +=== Création ===
  
 Créer une branche Créer une branche
Ligne 169: Ligne 203:
 Pour pousser votre branche sur le dépôt afin qu'elle soit accessible à tout le monde Pour pousser votre branche sur le dépôt afin qu'elle soit accessible à tout le monde
   git branch --set-upstream nom_dune_branche origin/nom_dune_branche   git branch --set-upstream nom_dune_branche origin/nom_dune_branche
 +
 +
 +=== Modification ===
  
 Pour fusionner votre nouvelle branche sur la branche master, faites vos commit, placez-vous sur la branche master puis fusionner une autre branche sur celle-ci Pour fusionner votre nouvelle branche sur la branche master, faites vos commit, placez-vous sur la branche master puis fusionner une autre branche sur celle-ci
Ligne 178: Ligne 215:
   git merge --no-ff branche_a_fusionner   git merge --no-ff branche_a_fusionner
  
-Pour supprimer la branche qui ne sert plus à rien  et vérifier qu'elle a été mergé 
-  git branch -d nom_branche_qui_sert_plus 
-   
-Pour supprimer une branche qui n'a pas été mergé 
-  git branch -D nom_branche_obsolète 
  
 Pour copier un fichier d'une autre branche sur la branche en cours Pour copier un fichier d'une autre branche sur la branche en cours
Ligne 190: Ligne 222:
     twitter_integration     twitter_integration
   $ git checkout twitter_integration fichier1 fichier2   $ git checkout twitter_integration fichier1 fichier2
 +
 +
 +Si vous avez une branche feature et que vous voulez intégrer les derniers commit de master sur cette branche
 +
 +  $ git checkout feature
 +  $ git pull origin master
 +
 +=== Suppression de branches ===
 +
 +Pour supprimer la branche qui ne sert plus à rien  et vérifier qu'elle a été mergé
 +  git branch -d nom_branche_qui_sert_plus
 +  
 +Pour supprimer une branche qui n'a pas été mergé
 +  git branch -D nom_branche_obsolète
 +
  
  
 Après avoir supprimé votre branch, il est possible qu'en utilisant ''git checkout '' + tab vous voyez encore de vieille branch dans l'autocompletion. Utilisez la commande suivante pour purger ces restes Après avoir supprimé votre branch, il est possible qu'en utilisant ''git checkout '' + tab vous voyez encore de vieille branch dans l'autocompletion. Utilisez la commande suivante pour purger ces restes
   $ git remote prune origin   $ git remote prune origin
 +
 +Pour supprimer la branch sur origin
 +  git push origin --delete nom_branche_qui_sert_plus
 +
  
 === tester un merge === === tester un merge ===
 +
 +  git checkout master
 +  git merge --no-commit --no-ff branche_a_merger
 +
 +Pour voir ce qui a changé
 +  git diff --cached
 +
 +Pour abandonner le merge
 +  git merge --abort
 +
 +
 +Pour valider le merge
 +  git commit
 +
 +== Méthode alternative à l'ancienne ==
 Pour tester votre merge, faite un test sur une branche temporaire Pour tester votre merge, faite un test sur une branche temporaire
  
Ligne 216: Ligne 282:
   git checkout v2   git checkout v2
  
-On veut appliquer le commit a2a2a2 pouvant venir de n'importe ou+On veut appliquer notre commit a2a2a2 sur notre branche master 
 +  git checkout master
   git cherry-pick a2a2a2   git cherry-pick a2a2a2
  
-Il peut uy avoir des conflits mais tout est bien expliqué+Si vous rencontrez des conflitstout est bien expliqué
 <code> <code>
 $ git cherry-pick 19c0c1d $ git cherry-pick 19c0c1d
Ligne 318: Ligne 385:
 Supprimer un fichier uniquement de l'index sans le supprimer physiquement Supprimer un fichier uniquement de l'index sans le supprimer physiquement
   git rm --cached fichier   git rm --cached fichier
 +
 +Pour supprimer le fichier de tout l'historique
 +  git filter-branch --index-filter 'git rm --cached (file)' HEAD
  
 Supprimer tous les fichiers pourris de iOS (échapper l'astérisk est important sinon le shell l'interprètera et seul les fichiers de 1er niveau seront supprimés) Supprimer tous les fichiers pourris de iOS (échapper l'astérisk est important sinon le shell l'interprètera et seul les fichiers de 1er niveau seront supprimés)
Ligne 388: Ligne 458:
  
 Si on a fait une modification qu'on ne veut pas commiter, on peut la mettre de côté, faire par exemple un git pull et réappliquer la modif Si on a fait une modification qu'on ne veut pas commiter, on peut la mettre de côté, faire par exemple un git pull et réappliquer la modif
- 
   git stash   git stash
 +
 +
 +Pour mettre en stash uniquement un fichier
 +  git stash push -- path/to/file.txt
  
 pour voir les modifs en stash pour voir les modifs en stash
-  git list+  git stash list
  
 Pour voir quelles sont les fichiers modifiés par un stash Pour voir quelles sont les fichiers modifiés par un stash
Ligne 399: Ligne 472:
   git stash show stash@{0}   git stash show stash@{0}
  
-Pour réappliquer vos modif en stash+Pour appliquer vos modifs stockées dans le stash et les supprimer du stash
   git stash pop   git stash pop
 +
 +Pour appliquer vos modifs stockées dans le stash et les laisser dans le stash
 +  git stash apply
  
 Le reste dans  Le reste dans 
Ligne 833: Ligne 909:
  
 Profitez-en pour limiter l'accès à votre fichier **README.md** Profitez-en pour limiter l'accès à votre fichier **README.md**
 +<code apache>
 +<Files "readme.md">
 +    Order Deny,Allow
 +    Deny from all
 +</Files>
 +</code>
 ===== Faire le ménage dans son historique ===== ===== Faire le ménage dans son historique =====
  
linux/git.1547412630.txt.gz · Dernière modification: 13-01-2019 21:50 de edmc73