Je rejoins ces commentaires un peu plus tard, mais j'ai construit cette ligne de code qui m'a aidé à aller "vers l'avant" sur n'importe quel git tree
et j'espère qu'il vous sera également utile.
Notez que je ne suis pas un magicien de bash, donc si vous trouvez quelque chose qui pourrait être changé, commentez et nous pourrons améliorer cette ligne de code !
Revenir en arrière :
git log --all --decorate --oneline | grep -A 1 $(git rev-parse --short HEAD) | awk '{print $1}' | tail -1 | xargs -I {} git checkout {}
Pour aller de l'avant :
git log --all --decorate --oneline | grep -B 1 $(git rev-parse --short HEAD) | awk '{print $1}' | head -1 | xargs -I {} git checkout {}
Voici quelques explications :
git reflog # Here we get all the commits we need
grep -A 1 $(git rev-parse --short HEAD) # Here we grep for the short commit hash
awk '{print $1}' # Here we get just the hash
tail -1 # We will get at least 2 results, pick the last line, the first would be 0
xargs -I {} git checkout {} # Here we go "forward by 1"
J'espère que cela pourra être utile à tous ceux qui voudraient obtenir le même comportement. Je suis en train de construire un CLI qui a une commande qui vous déplace "en avant et en arrière" dans l'arbre des commits sans connaissance préalable des hashs ou des logs.