User Tools

Site Tools


projtec:git

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
projtec:git [2019/04/03 07:51] nikoprojtec:git [2024/03/18 15:06] (current) – external edit 127.0.0.1
Line 25: Line 25:
 # mail / user name # mail / user name
 git config --global user.name "orel" git config --global user.name "orel"
-git config --global user.mail aurelien.esnard@u-bordeaux.fr+git config --global user.email aurelien.esnard@u-bordeaux.fr
 # editeur de texte # editeur de texte
 git config --global core.editor emacs git config --global core.editor emacs
Line 203: Line 203:
 Nous sommes encore dans la branche //master// comme l'indique "*". Passons dans la branche //hotfix// : Nous sommes encore dans la branche //master// comme l'indique "*". Passons dans la branche //hotfix// :
 <code bash> <code bash>
-git checkout hotfix+git switch hotfix
 git branch  git branch 
 * hotfix * hotfix
Line 235: Line 235:
 </code> </code>
  
-Pour propager cette modification vers la branche //master//, il va falloir repasser dans la branche //master// et effectuer un //merge//.+Pour propager cette modification vers la branche //master//, il va falloir repasser dans la branche //master//, faire quelques modifs sur master puis effectuer un //merge//.
  
 <code bash> <code bash>
-git checkout master+git switch master 
 +date >> date2.txt 
 +git add date2.txt 
 +git commit -m "date2.txt"
 git merge hotfix git merge hotfix
 </code> </code>
Line 260: Line 263:
   git log --graph --oneline   git log --graph --oneline
     * c38c81a (HEAD -> hotfix) deux dates dans hotfix     * c38c81a (HEAD -> hotfix) deux dates dans hotfix
 +    * c908469 bla bla
 +    * d144ffa autre bla bla
     (...)     (...)
-  git checkout hotfix+  git switch hotfix
   git push --set-upstream origin hotfix   git push --set-upstream origin hotfix
   git log --graph --oneline   git log --graph --oneline
     * c38c81a (HEAD -> hotfix, origin/hotfix) deux dates dans hotfix     * c38c81a (HEAD -> hotfix, origin/hotfix) deux dates dans hotfix
 +    * c908469 bla bla
 +    * d144ffa autre bla bla
     (...)     (...)
 </code> </code>
  
-La encore on se synchronisera avec la branche distance à l'aide des commandes push/pull.+La encore on se synchronisera avec la branche distance à l'aide des commandes push/pull:
  
-Pour voir toutes les branches (locales et distantes:+<code bash> 
 +  date >> date.txt 
 +  git add date.txt 
 +  git commit -m "mise à jour de la date" 
 +  git log --graph --oneline 
 +    * 68b1978 (HEAD -> hotfixmise à jour de la date 
 +    * c38c81a (origin/hotfix) deux dates dans hotfix 
 +    (...) 
 +  git push 
 +  git log --graph --oneline 
 +    * 68b1978 (HEAD -> hotfix, origin/hotfix) mise à jour de la date 
 +    * c38c81a deux dates dans hotfix 
 +    (...)  
 +</code>
  
 +
 +Pour voir toutes les branches (locales et distantes) :
 +<code bash>
   git fetch -p   git fetch -p
   git branch -a   git branch -a
 +</code>
      
 __Nota Bene__ : le //fetch// permet de mettre à jour son cache local et éventuellement (option -p) d'effacer dans ce cache les références à des branches mortes ! __Nota Bene__ : le //fetch// permet de mettre à jour son cache local et éventuellement (option -p) d'effacer dans ce cache les références à des branches mortes !
      
-Pour récupérer une branche distante et la suivre via une branche locale : 
  
-  git checkout --track origin/mybranch+Puis pour supprimer la branche locale, il faut faire ceci :   
 +<code bash> 
 +  git branch -d mybranch 
 +</code>
  
-Puis pour supprimer la branche distante (enfin presque...), il faut faire ceci :   
  
 +Puis pour supprimer la branche distante (enfin presque...), il faut faire ceci :  
 +<code bash>
   git push origin --delete mybranch   git push origin --delete mybranch
-   +</code>  
-Expliquer le //rebase// simple :+
  
-  git checkout mybranch +Pour récupérer une branche distante et la suivre via une branche locale : 
-  git rebase master +<code bash> 
-  git checkout master +  git checkout --track origin/mybranch 
-  git merge mybranch+</code> 
 + 
 +Considérons le cas suivant... Expliquer ensuite le //rebase// simple : 
 + 
 +<code bash> 
 +  git switch mybranch 
 +  git rebase master        #  
 +  git switch master 
 +  git merge mybranch       # merge naif
   git branch -d mybranch   git branch -d mybranch
 +</code>
  
 Pour aller plus loin : Pour aller plus loin :
Line 416: Line 451:
  
 L'idée c'est que le .git/ n'est pas dupliqué ! L'idée c'est que le .git/ n'est pas dupliqué !
 +
 +=== Suppression d'une Branche Distante ====
 +
 +Pour supprimer une branche locale sur votre ordinateur, la commande est la suivante :
 +
 +  $ git branch -d [nom_de_la_branche]
 + 
 +Ou bien : 
 +
 +  $ git branch -D [nom_de_la_branche]
 +
 +Pour supprimer la branche située sur le dépôt distant (syntaxe récente) :
 +
 +  $ git push origin --delete [nom_de_la_branche]
 +
 +Pour mettre à jour les changements sur un autre ordinateur, il faut faire :
 +
 +  $ git fetch --all -prune
 +
 +=> https://www.journaldunet.fr/web-tech/developpement/1202943-effacer-une-branche-git-a-la-fois-locale-et-distante/
 +==== Suppression de Commit Fautifs sur le dépôt distant ====
 +
 +Revenir à l'état désiré : 
 +
 +  $ git reset --hard <commit hash>
 +
 +Forcer cet état comme le dernier état du dépôt :
 +
 +  $ git push --force origin master
 +  
 +Attention : Ces commandes sont susceptibles d'engendrer le chaos lorsque plusieurs utilisateurs collaborent sur le même dépôt. https://makandracards.com/git/7347-supprimer-des-commits-fautifs-avec-git
 ==== Savane ==== ==== Savane ====
  
Line 434: Line 500:
 ==== A Lire ==== ==== A Lire ====
  
 +  * https://gitlab-ce.iut.u-bordeaux.fr/Pierre/DEMO-GIT-PT2
 +  * https://marklodato.github.io/visual-git-guide/index-en.html
   * https://help.github.com/articles/syncing-a-fork/   * https://help.github.com/articles/syncing-a-fork/
   * http://nvie.com/posts/a-successful-git-branching-model/   * http://nvie.com/posts/a-successful-git-branching-model/
Line 440: Line 508:
   * https://yakiloo.com/getting-started-git-flow/   * https://yakiloo.com/getting-started-git-flow/
   * https://git-man-page-generator.lokaltog.net/   * https://git-man-page-generator.lokaltog.net/
 +  * https://thor.enseirb-matmeca.fr/ruby/docs/repository/git
projtec/git.1554277906.txt.gz · Last modified: 2024/03/18 15:05 (external edit)