Wiki adminsys - Cebador.fr

Wiki d'administration systèmes et réseaux.
Simples notes personnelles et non réelle documentation exhaustive.
Donc désolé pour les coquilles et les inexactitudes.
Doc sous licence GNU FDL 1.3

Outils pour utilisateurs

Outils du site


git

Git

Mise à jour repo depuis un dépôt distant

  1. Mettre à jour dépôt local depuis dépôt distant : git fetch –all (ou nom des branches)
  2. Mettre à jour workspace depuis dépot local : git merge all (ou nom des branches)

Alternatives

Mettre à jour workspace directement depuis dépôt distant (méthode brusque) : git pull

Méthode douce :

  1. git fetch –all
  2. git rebase origin/(branche sur laquelle on veut se mettre à niveau)

Cumul ⇒ gut pull –rebase

Mettre à jour dépôt local et workspace si d'autres commits on été poussé dans le repo distant et que du travail en workspace n'a pas été indexé

  1. git fetch
  2. git reset HEAD
  3. git stash
  4. git pull origin BRANCH
  5. git stash pop
  6. Résoudre les éventuels conflits

Mettre à jour dépôt local et workspace sur une branche de dev alors que d'autres commits ont été poussé sur la branche master depuis sur le repo distant

  1. git fetch –all
  2. git stash
  3. git rebase origin/master
  4. git stash pop

Changer url d'un dépôt distant :

  1. cd repertoire/du/workspace
  2. git remote remove origin
  3. git remote add origin url/du/depôt/distant
  4. git fetch –all

Dépôt local

Mise à jour dépot local après avoir effecuté modifs dans le workspace : git add .

⇒ indexe toutes les modifs locales dans l'index (modifs de fichier, ajout, déplacement de fichiers, création dossier….)

Mise à jour workspace en placant HEAD au même niveau qu'un tag : git checkout TAG (par ex v3.1.1)

Renommer une branche dans le workspace :

git branch -m BRANCH

Supprimer du repo local les branches distantes qui n'existent plus :

git remote prune origin

Supprimer une branche dans le workspace :

git branch -d BRANCH

Ajout selectif des modifications

Faire un git add -p pour choisir les modification qu'on souhaite ajouter au prochain commit.

Options possibles pour chaque ajout :

Stage this hunk [y,n,a,d,/,j,J,g,e,?]? ?
y - stage this hunk
n - do not stage this hunk
a - stage this and all the remaining hunks in the file
d - do not stage this hunk nor any of the remaining hunks in the file
g - select a hunk to go to
/ - search for a hunk matching the given regex
j - leave this hunk undecided, see next undecided hunk
J - leave this hunk undecided, see next hunk
k - leave this hunk undecided, see previous undecided hunk
K - leave this hunk undecided, see previous hunk
s - split the current hunk into smaller hunks
e - manually edit the current hunk
? - print help

Source : https://git-scm.com/book/it/v2/Git-Tools-Interactive-Staging#r_interactive_staging

Merge Request

⇒ Possibilité d'effectuer merge en cli avant le push

PRIVILÉGIER de passer par Gitlab. Aller dans le projet ⇒ Merge Request ⇒ New Merge request

Alias utiles

⇒ Historiques des commits (git lg amélioré)

lg = log --graph --abbrev-commit --decorate --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)-%an%C(reset)%C(bold yellow)%d%C(reset)' --all

Divers

  • Rejouer un diff à un endroit donné :
    git cherry-pick ID_COMMIT
  • Appliquer un diff dans un autre dépôt
    1. Créer un patch dans le dépôt source:
      git diff --fichier_à_modifier > nomdupatch.patch
    2. Aller dans le dépôt destination
    3. Appliquer le patch :
      git apply /chemin/depôt/source/nomdupatch.patch
  • Changer le message du dernier commit :
    git commit --amend
  • Ajouter un tag de version :
    git tag version-tag
  • Modifier l'ID du dernier commit sans faire de modif :
    git commit --amend --no-edit
  • Créer un commit vide (pour déclencher une CI par exemple) :
     git commit --allow-empty -m "Faux commit"

Sources

git.txt · Dernière modification : de Administrateur