Alias 'git reset HEAD~3'

Faire un alias git pour annuler des commits d'une PR

Le problème exposé dans ce sujet a été résolu.

Bonjour,

Je souhaite faire un alias pour : git reset HEAD~3 avec : git undo 3 pour l’utiliser dans mes PR.

Oubliez ! Ce n’est pas la commande que vous cherchez ! (Utilisez plutôt rebase !) Git reset NON !

Donc ça serait :

git config --global alias.undo '!f() { git reset HEAD~$1; }; f'

C’est bien ça ?

Pour annuler cette commande on doit faire git reset 'HEAD@{1}'; donc mon alias doit ressembler à :

git config --global alias.discard '!f() { git reset \'HEAD@{1}\'; }; f'

Bon vol,

A-312.

+0 -0

Par curiosité, quand est-ce que tu servirais de cette commande ? Ça m’a l’air un peu curieux d’avoir besoin de reset (une opération un peu dangereuse car elle peut donner lieu à de la perte de travail) si souvent.

gasche

Si c’est en soft ou mixed je ne risque rien il me semble.

C’est pour assembler mes commits en un seul ou si mon dernier commit n’est pas valide.

Je vais essayer d’ajouter une condition pour obliger l’argument dans git undo

Pour assembler tes commits, ne serait-il pas plus simple de passer par un rebase -i avec des squash/fixup ?

L’option --fixup= lors d’un git commit peut d’ailleurs être bien utile pour cela : tu crées des commits séparés lors du développement, mais en vu d’être fusionnés par la suite (l’option --autosquash du rebase permet de le faire automatiquement).

Finalement je garde :

EDIT : C’était une mauvaise idée. N’utilisez pas les alias ci-dessous.

git config --global alias.undo '!f() { if [ -z $1 ]; then echo "Argument attendu"; else git reset HEAD~$1; fi }; f'
git config --global alias.discard '!git reset "HEAD@{1}"'

Pour assembler tes commits, ne serait-il pas plus simple de passer par un rebase -i avec des squash/fixup ?

Ok à la prochaine occasion j’essayerai de penser à tester : rebase -i.


HS: Je te n’ai pas reconnu avec ton avatar rouge et beu. :'(

+0 -0

@entwanne Merci, maintenant je fais git rebase -i HEAD~nn est le nombre de commit à rebase. Ca fait plusieurs fois que je l’utilise et ça fonctionne au top. :) (je n’avais pas compris au départ qu’il manquait HEAD~1).

function zds_edit {
    if [ -z $1 ]; then
        echo "Argument attendu : Nombre de commit à rebase."
    else
        git rebase -i HEAD~$1
    fi
}

Je souhaite comprendre : git reset "HEAD@{1}". Si je mets : HEAD@{5}, je vais reset les 5 derniers changements ?

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte