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 [06/04/2017 10:57] – [Create a Branch] 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 ===== 
 + 
 + 
 +=== Spécifier la clé ssh === 
 + 
 +Sur la ligne de commande: 
 + 
 +<code bash> 
 +GIT_SSH_COMMAND='ssh -i .ssh/the_private_key' git clone git@gitlab.com:Namespace/Project/theproject.git 
 +</code> 
 + 
 +Dans la configuration git du projet: 
 + 
 +<code ini> 
 +# vi .git/config 
 +[core] 
 +  sshCommand="/usr/bin/ssh -i /home/user/.ssh/the_private_key" 
 +</code> 
 + 
 +Dans la configuration du client ssh: 
 + 
 +<code bash> 
 +# cat ~/.ssh/config 
 +Host gitlab.com 
 +    Hostname gitlab.com 
 +    IdentityFile /home/user/.ssh/the_private_key 
 +    IdentitiesOnly yes 
 +</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://stackoverflow.com/questions/1123344/merging-between-forks-in-github|Merging between forks in GitHub]]
Ligne 29: Ligne 69:
   * sub-modules   * sub-modules
     * [[http://git-scm.com/book/en/Git-Tools-Submodules|6.6 Git Tools - Submodules]]     * [[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 45: 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 56: 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 87: 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 134: 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.1491469047.txt.gz · Dernière modification : 06/04/2017 10:57 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