informatique:git
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
informatique:git [08/01/2016 10:02] – [Delete a Tag] cyrille | informatique:git [25/08/2023 13:01] (Version actuelle) – [Rétablir un fichier depuis un commit] cyrille | ||
---|---|---|---|
Ligne 19: | Ligne 19: | ||
* [[http:// | * [[http:// | ||
- | ==== Tips ==== | + | ===== Credentials ===== |
+ | |||
+ | |||
+ | === Spécifier la clé ssh === | ||
+ | |||
+ | Sur la ligne de commande: | ||
+ | |||
+ | <code bash> | ||
+ | GIT_SSH_COMMAND=' | ||
+ | </ | ||
+ | |||
+ | Dans la configuration git du projet: | ||
+ | |||
+ | <code ini> | ||
+ | # vi .git/ | ||
+ | [core] | ||
+ | sshCommand="/ | ||
+ | </ | ||
+ | |||
+ | Dans la configuration du client ssh: | ||
+ | |||
+ | <code bash> | ||
+ | # cat ~/ | ||
+ | Host gitlab.com | ||
+ | Hostname gitlab.com | ||
+ | IdentityFile / | ||
+ | IdentitiesOnly yes | ||
+ | </ | ||
+ | |||
+ | === 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 | ||
+ | </ | ||
+ | |||
+ | ===== Tips ===== | ||
* [[http:// | * [[http:// | ||
Ligne 29: | Ligne 69: | ||
* sub-modules | * sub-modules | ||
* [[http:// | * [[http:// | ||
+ | * [[https:// | ||
+ | |||
+ | |||
+ | === Revenir à une version précédente, | ||
+ | |||
+ | Rewind local & remote | ||
+ | |||
+ | <WRAP center round important 50%> | ||
+ | Attention, pas de retour arrière possible, c'est pour toujours | ||
+ | </ | ||
+ | |||
+ | <code bash> | ||
+ | git reset --hard 4a3ba7 | ||
+ | git push -f | ||
+ | </ | ||
+ | |||
+ | **Gitlab** interdit par défaut le push forcé '' | ||
+ | {{ : | ||
=== 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" | + | Annuler le "git add" |
+ | <code bash> | ||
$ git reset < | $ git reset < | ||
+ | </ | ||
=== 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' | ||
+ | <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. | ||
+ | </ | ||
=== 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 === | ||
+ | |||
+ | '' | ||
+ | |||
+ | <code bash> | ||
+ | $ git log --oneline resources/ | ||
+ | f5d16d4 (HEAD -> main, origin/ | ||
+ | 1f27c64 User registration | ||
+ | 5cfb6d7 initial code (bis) | ||
+ | |||
+ | $ git checkout 1f27c64 -- resources/ | ||
+ | |||
+ | $ git status | ||
+ | |||
+ | Sur la branche main | ||
+ | Votre branche est à jour avec ' | ||
+ | |||
+ | Modifications qui seront validées : | ||
+ | (utilisez "git restore --staged < | ||
+ | modifié : | ||
+ | </ | ||
=== Create a Tag === | === Create a Tag === | ||
Ligne 98: | Ligne 197: | ||
=== Delete a Tag === | === Delete a Tag === | ||
- | Pour supprimer une tag localement | + | Pour supprimer une tag localement: |
$ git tag -d release01 | $ git tag -d release01 | ||
+ | puis sur le remote: | ||
+ | $ git push origin --delete release01 | ||
+ | ou | ||
$ git push origin : | $ git push origin : | ||
Ligne 109: | Ligne 211: | ||
Créer la branche sur le remote | Créer la branche sur le remote | ||
$ git push origin origin: | $ git push origin origin: | ||
- | Se connecter | + | Se connecter |
- | $ git branch --track nom_nouvelle_branche origin/ | + | |
$ git checkout nom_nouvelle_branche | $ git checkout nom_nouvelle_branche | ||
$ git pull | $ git pull | ||
Ligne 132: | Ligne 233: | ||
Delete remote: | Delete remote: | ||
git push origin --delete < | git push origin --delete < | ||
+ | |||
+ | === Log & graph === | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | '' | ||
+ | |||
===== Tools ===== | ===== Tools ===== |
informatique/git.txt · Dernière modification : 25/08/2023 13:01 de cyrille