Ah ben j'ai pas mal d'alias, ou de fonctions bash, de workflow git chez moi.
J'ai même un .bashrc.git inclus dans le .bashrc général pour mettre ça dans un endroit séparé.
Par exemple, tu bosses sur ton clone gitlub, et tu fais des PR sur l'origine gitlub aussi, il faut régulièrement remettre ta branche master/main à jour depuis l'origine.
Alors :
function gitmaster(){
git status -bsuno | head -1 | sed -r 's/## ([^.]*).*/1円/'localmaster=main
git checkout master &&master=master || git checkout main
git fetch upstream
git rebase upstream/$master
git push
}
Qui s'adapte en fonction de master/main, et t'affiche en haut le nom de la branche d'où tu es parti.
Typiquement derrière tu peux faire un git checkout ma_branche_de_travail; git rebase/merge master
J'ai aussi des alias simples comme :
aliasgitdiff="git diff --ignore-space-change --ignore-blank-lines"aliasgitstatus="git status -bsuno"
Après, quand j'ai commencé à bosser sur mainster, et qu'il est temps de commiter, j'ai pas encore de branche, alors j'ai ça, avec sa version tout intégré une branche, un commit avec le même texte que le nom de la branche vaguement mis en forme, pas de choix des fichiers à commiter, ie tu commites tout ce que tu as modifié, un push, et yapluka faire la PR sur gitlub :
function gitnewbranch(){
git stash
gitmaster # la fonction plus haut pour synchro mon master avec celui de l'origine
git checkout -b "1ドル"
git stash pop
}function gitsimplebranch(){localbranchname="$(sed 's/*/⚹/g'<<<"1ドル")"
gitnewbranch "$branchname"
git commit -am "$(tr _ \ <<<"1ドル")"
git push --set-upstream origin "$branchname"}
Et pour le « oups j'ai commité/pushé trop tôt », j'ai aussi ça :
Cette fonction est un condensé de conneries à ne pas faire : déjà on ne reprend que la première ligne du commit, ensuite on commite tous les fichiers modifiés sans réfléchir, et enfin on écrase un commit déjà envoyé sur le dépôt central, donc public, un vrai bonheur de goret !
Ça se marie bien avec la gitsimplebranch de plus haut où le message ne fait qu'une ligne et équivaut au nom de la branche, et quand on pushe sur notre clone perso, c'est public mais pas trop, assez pratique pour débugger depuis le gitlub (des fois qu'il y ait une CICD automagique derrière) avant de faire la PR évidemment.
# Du gitcode à partager - ou pas
Posté par Yth (Mastodon) . En réponse au lien « Et merde, Git!?! ». Évalué à 9.
Ah ben j'ai pas mal d'alias, ou de fonctions bash, de workflow git chez moi.
J'ai même un .bashrc.git inclus dans le .bashrc général pour mettre ça dans un endroit séparé.
Par exemple, tu bosses sur ton clone gitlub, et tu fais des PR sur l'origine gitlub aussi, il faut régulièrement remettre ta branche master/main à jour depuis l'origine.
Alors :
Qui s'adapte en fonction de master/main, et t'affiche en haut le nom de la branche d'où tu es parti.
Typiquement derrière tu peux faire un
git checkout ma_branche_de_travail; git rebase/merge masterJ'ai aussi des alias simples comme :
Après, quand j'ai commencé à bosser sur mainster, et qu'il est temps de commiter, j'ai pas encore de branche, alors j'ai ça, avec sa version tout intégré une branche, un commit avec le même texte que le nom de la branche vaguement mis en forme, pas de choix des fichiers à commiter, ie tu commites tout ce que tu as modifié, un push, et yapluka faire la PR sur gitlub :
Et pour le « oups j'ai commité/pushé trop tôt », j'ai aussi ça :
Cette fonction est un condensé de conneries à ne pas faire : déjà on ne reprend que la première ligne du commit, ensuite on commite tous les fichiers modifiés sans réfléchir, et enfin on écrase un commit déjà envoyé sur le dépôt central, donc public, un vrai bonheur de goret !
Ça se marie bien avec la gitsimplebranch de plus haut où le message ne fait qu'une ligne et équivaut au nom de la branche, et quand on pushe sur notre clone perso, c'est public mais pas trop, assez pratique pour débugger depuis le gitlub (des fois qu'il y ait une CICD automagique derrière) avant de faire la PR évidemment.