Table of Contents

GIT aide-memoire

Désactiver temporairement la vérification des certificats ssl

Il peut arriver lors de l'expiration des certificats que l'on ait besoin de désactiver temporairement la vérification ssl pour pouvoir clôner un dépôt git, cette solution présente l'avantage qu’elle ne prend effet que pour la commande associée:

GIT_SSL_NO_VERIFY=true git clone http://<url>

Annuler le dernier commit

git reset --hard HEAD~1

Ramènera la branche HEAD actuelle à la révision spécifiée :

Si on ne souhaite pas conserver ces modifications, utiliser simplement le drapeau –hard.

il faut être certain de ne plus avoir besoin de ces modifications avant de le faire, car cela aura pour conséquence de supprimer tous les fichiers et dossiers ajoutés depuis le dernier commit.

Annuler un git reset --hard HEAD~1

Si on viens d'exécuter git reset et qu'on a rien fait d'autre depuis, on peut revenir à la situation précédente avec :

git reset --hard@{1}

Annuler un git add

Pour annuler git add utiliser

git reset

Créer un mirroir repo git distant

Configurer le proxy

git config --global http.proxy http://proxy.infra.dgfip:3128

Configurer l'alias du dépôt distant

git remote add {alias} http://{user}:{password}@{url-du-repo-git}/{user}/vagrant.git

Refaire un add global

git add -A

Faire un commit (normalement si tous les changements devraient déjà être commités si ce n'est pas le cas faire un push sur le dépôt maître avant puis recommencer le add suivi du commit)

git commit -m "initialisation mirroir"

Sur la branche master
Votre branche est à jour avec 'origin/master'.

rien à valider, la copie de travail est propre

Faire un push

git push -u {alias} master

Counting objects: 12, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (8/8), done.
Writing objects: 100% (12/12), 1.56 KiB | 0 bytes/s, done.
Total 12 (delta 1), reused 0 (delta 0)
To http://{user}:{password}@{url-du-repo-git}/{user}/vagrant.git
 * [new branch]      master -> master
La branche master est paramétrée pour suivre la branche distante master depuis {alias}.

Aplatir le sous-répertoire git en convertissant les répertoires en nouvelles branches

Dans certaines applications, comme Gollum, la structure de répertoires n'est pas prise en charge. Cela signifie qu'en utilisant le navigateur d'arborescence de fichiers pour accéder aux fichiers, on ne peut avoir le rendu attendu.

Une sollution pour contourner cette limitation est d'aplatir l'arborescence avec git-filter-branch:

for branch in `find . -type d -d 1`; do 
    git filter-branch --subdirectory-filter $branch --prune-empty -- --all
done

git filter-branch sert à copier les validations existantes tout en appliquant des transformations sur chacune d'elles (avant de créer la nouvelle copie). Les arguments de filter-branch fournissent les transformations et lui indiquent les noms de branche à mettre à jour pour les orienter vers les commits nouvellement copiés au lieu de leurs commits originaux (maintenant copiés). Il ne créera aucun nouveau nom de branche.

La commande filter-branch peut réécrire des pans entiers d'un historique, cela peut être très utile. Voici quelques usages communs pour donner une idée de ses capacités :