• [^] # Re: Du gitcode à partager - ou pas

    Posté par . En réponse au lien « Et merde, Git!?! ». Évalué à 6.

    Oh un copain qui fait beaucoup trop de choses avec git comme moi !

    Tu me permet quelques remarques ? Je suis optimiste, je vais considérer que c'est oui.

    function gitmaster() {
     git status -bsuno | head -1 | sed -r 's/## ([^.]*).*/1円/'
     local master=main
     git checkout master && master=master || git checkout main
     git fetch upstream
     git rebase upstream/$master
     git push
    }

    Je comprends pas le master=master, il sert à quoi ?
    ±a vaut le coup je trouve de faire git rev-parse --abbrev-ref HEAD pour avoir le nom de ta branche, c'est un peu ésothérique mais c'est plus solide que parser la sortie de git (quand on peut l'éviter).

    Quand je peux j'évite de faire des checkout, du coup de fais simplement :

    git fetch -a
    git rebase origin/master
    git force

    git force est un alias git force = push --force-with-lease. Comme ça j'ai l'hébitude de faire git force et pas de push -f.

    function gitrepush() {
     local msg="$(git log -n1 --pretty=format:%s)"
     git reset HEAD~
     git commit -am "$msg"
     git push -f
    }

    Ca me parait super compliqué pour faire :

    git commit -a --amend --no-edit

    que j'ai bien sûr alias en

    ff = commit -a --amend --no-edit
    

    L'alias que je trouve trop cool c'est :

    fixup = "!git log origin/master.. --pretty=format:'%h %s' --no-merges | fzf | cut -c -7 | xargs -o git commit -a --fixup"
    

    Ca permet de choisir avec quel commit de ma branche les changements en cours vont être fusionnés. Ca demande un coup de git rebase -i origin/master pour être appliqué ensuite (j'ai l'option rebase.autoStash = true activé).

    Dernier trucs pour le fun. Si j'ai un git wip qui commit les changements en cours dans un commit wip. J'ai un alias ragequit = !sh -c 'git commit -am wip && shutdown -h now' plus expéditif encore.

    https://linuxfr.org/users/barmic/journaux/y-en-a-marre-de-ce-gros-troll