Outils pour utilisateurs

Outils du site


informatique:git

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édentesRévision précédente
Prochaine révision
Révision précédente
informatique:git [02/04/2021 11:34] – [Spécifier la clé ssh] cyrilleinformatique:git [25/08/2023 13:01] (Version actuelle) – [Rétablir un fichier depuis un commit] cyrille
Ligne 19: Ligne 19:
   * [[http://openclassrooms.com/courses/gerer-son-code-avec-git-et-githubl|Gérez vos codes sources avec Git]] sur OpenClassRooms.   * [[http://openclassrooms.com/courses/gerer-son-code-avec-git-et-githubl|Gérez vos codes sources avec Git]] sur OpenClassRooms.
  
-==== Tips ====+===== Credentials =====
  
-  * [[http://stackoverflow.com/questions/1123344/merging-between-forks-in-github|Merging between forks in GitHub]] 
-  * [[http://www.siteduzero.com/tutoriel-3-254198-gerez-vos-codes-source-avec-git.html#ss_part_8|Travailler avec des branches]] 
-  * [[http://stackoverflow.com/questions/2641146/handling-file-renames-in-git|Handling file renames in git]] 
-  * Annulé un/des Commit(s) : Revert or Reset ? 
-    * [[http://stackoverflow.com/questions/2389361/git-undo-a-merge|git: undo a merge?]] => Si les modifs n'ont pas été "pushées" un Reset est la bonne solution pour ne pas ajouter toutes les manips dans les logs. Par contre, après un Push un Revert est nécessaire. 
-  * [[http://stackoverflow.com/questions/179123/edit-an-incorrect-commit-message-in-git|Edit an incorrect commit message]], Amending the commit message 
-  * sub-modules 
-    * [[http://git-scm.com/book/en/Git-Tools-Submodules|6.6 Git Tools - Submodules]] 
-    * [[https://delicious-insights.com/fr/articles/git-submodules/|Comprendre et maîtriser les submodules Git]] 
  
 === Spécifier la clé ssh === === Spécifier la clé ssh ===
Ligne 56: Ligne 47:
     IdentitiesOnly yes     IdentitiesOnly yes
 </code> </code>
 +
 +=== avec HTTPs ===
 +
 +On peut configurer git pour conserver en cache (en mémoire) un certain temps le mot de passe pour HTTPs.
 +
 +<code bash>
 +[core]
 +        user = username
 +[credential]
 +        helper = cache --timeout=3600
 +</code>
 +
 +===== Tips =====
 +
 +  * [[http://stackoverflow.com/questions/1123344/merging-between-forks-in-github|Merging between forks in GitHub]]
 +  * [[http://www.siteduzero.com/tutoriel-3-254198-gerez-vos-codes-source-avec-git.html#ss_part_8|Travailler avec des branches]]
 +  * [[http://stackoverflow.com/questions/2641146/handling-file-renames-in-git|Handling file renames in git]]
 +  * Annulé un/des Commit(s) : Revert or Reset ?
 +    * [[http://stackoverflow.com/questions/2389361/git-undo-a-merge|git: undo a merge?]] => Si les modifs n'ont pas été "pushées" un Reset est la bonne solution pour ne pas ajouter toutes les manips dans les logs. Par contre, après un Push un Revert est nécessaire.
 +  * [[http://stackoverflow.com/questions/179123/edit-an-incorrect-commit-message-in-git|Edit an incorrect commit message]], Amending the commit message
 +  * sub-modules
 +    * [[http://git-scm.com/book/en/Git-Tools-Submodules|6.6 Git Tools - Submodules]]
 +    * [[https://delicious-insights.com/fr/articles/git-submodules/|Comprendre et maîtriser les submodules Git]]
 +
 +
 +=== Revenir à une version précédente, pour toujours ===
 +
 +Rewind local & remote
 +
 +<WRAP center round important 50%>
 +Attention, pas de retour arrière possible, c'est pour toujours
 +</WRAP>
 +
 +<code bash>
 +git reset --hard 4a3ba7
 +git push -f
 +</code>
 +
 +**Gitlab** interdit par défaut le push forcé ''remote: GitLab: You are not allowed to force push code to a protected branch on this project''. Il faut l'autoriser dans les options de la branche: "Settings / Repositories / Protected branches /  Allowed to force push".
 +{{ :informatique:git:gitlab_forced-push_allow.png?nolink&620 |}}
  
 === Créer un dépôt depuis un projet existant === === Créer un dépôt depuis un projet existant ===
Ligne 72: Ligne 103:
 === Cancel an add === === Cancel an add ===
  
-Annuler le "git add" d'un fichier+Annuler le "git add" de fichier(s) 
 +<code bash>
 $ git reset <le_fichier> $ git reset <le_fichier>
 +</code>
 === Amend last commit === === Amend last commit ===
  
Ligne 83: Ligne 115:
   $ git add le_fichier   $ git add le_fichier
   $ git commit --amend   $ git commit --amend
 +
 +=== Changer des commits de branche ===
 +
 +//move commits to another branch//
 +
 +**La version simple**: Je viens de pousser un ou plusieurs commits mais j'aurai dû le faire dans une branche
 +<code bash>
 +# Créer nouvelle branche depuis main, elle contiendra les commits en question
 +git branch oups-branch
 +# reset d'un ou plusieurs (n) commits selon HEAD~n
 +git reset --hard HEAD~1
 +# ou remplacer HEAD~n par le hash du commit voulu
 +git checkout oups-branch
 +# forcer le push vers le remote
 +git push -f
 +# possible erreur si branch protégée:
 +# remote: GitLab: You are not allowed to force push code to a protected branch on this project.
 +</code>
  
 === Force pull === === Force pull ===
Ligne 114: Ligne 164:
   $ git diff --cached # pour vérifier la modif   $ git diff --cached # pour vérifier la modif
   $ git commit -a -m “merge [SHA du commit]"   $ git commit -a -m “merge [SHA du commit]"
 +
 +=== Rétablir un fichier depuis un commit ===
 +
 +''git checkout <commit> -- <file>''
 +
 +<code bash>
 +$ git log --oneline resources/views/auth/register.blade.php
 +f5d16d4 (HEAD -> main, origin/main) WIP refactorize User data #13
 +1f27c64 User registration
 +5cfb6d7 initial code (bis)
 +
 +$ git checkout 1f27c64 -- resources/views/auth/register.blade.php
 +
 +$ git status
 +
 +Sur la branche main
 +Votre branche est à jour avec 'origin/main'.
 +
 +Modifications qui seront validées :
 +  (utilisez "git restore --staged <fichier>..." pour désindexer)
 + modifié :         resources/views/auth/register.blade.php
 +</code>
  
 === Create a Tag === === Create a Tag ===
Ligne 161: Ligne 233:
 Delete remote: Delete remote:
   git push origin --delete <branchName>   git push origin --delete <branchName>
 +
 +=== Log & graph ===
 +
 +{{ :informatique:git:git-log-graph.png?nolink&400}}
 +
 +''git log --graph''
 +
  
 ===== Tools ===== ===== Tools =====
informatique/git.1617356060.txt.gz · Dernière modification : 02/04/2021 11:34 de cyrille

Sauf mention contraire, le contenu de ce wiki est placé sous les termes de la licence suivante : CC0 1.0 Universal
CC0 1.0 Universal Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki