cmd#9 – Git: mise à jour « forcée » depuis le dépôt distant

Dans un script automatique, dont le but est de mettre à jour le code local d’un dépôt git avec celui du dépôt distant, sans prendre en compte ni même conserver les éventuelles modifications locales, l’enchaînement de commande git est le suivant:

git fetch
git reset --hard HEAD
git merge '@{u}'

Avec '@{u}', un raccourci pointant vers la branche upstream de la branche courante.

cmd#8 – sed et sudo

Récemment, j’ai été confronté à une erreur de droit sur l’une des étapes d’un script bash. Sans possibilité d’agir sur le contexte d’exécution du script, celui-ci utilise l’instruction sudo pour chaque opération. L’une des étapes utilise sed et un opérateur de redirection, afin de modifier un paramètre du fichier fournissant les variables d’environnement, seulement, le sudo associé à sed ne permet pas de procéder à l’écriture du fichier temporaire .env-tmp.

sudo sed 's/API_ENABLED=false/API_ENABLED=true/g' .env > .env-tmp
sudo mv .env-tmp .env

La solution, pourtant simple, consiste en l’utilisation de l’option -i, pour effectuer le changement voulu.

sudo sed -i 's/API_ENABLED=false/API_ENABLED=true/g' .env

Je m’étonne que nous ne l’ayons pas vu au moment de l’écriture du script.

Cmd #6 [Git]

Quelques commandes Git bien utiles.

 

git log -p

Permet de voir le diff introduit par chaque commit.

 

git log --name-status

Voir la liste des fichiers affectés par chaque commit avec le type de modification: ajout, modification, suppression.

 

git log --stat

Donne des infos concernant les fichiers modifiés (ex: …/src/test/resources/log4j.properties | 3 +-).

 

git stash save

Sauvegarde les modifications locales et remet le dépôt dans l’état correspondant à votre HEAD.

 

git stash pop

Applique les modifications précédemment sauvegardées.

 

Source: