localmaster=main
git checkout master &&master=master || git checkout main
Il faut voir les deux lignes :
* on crée une variable $master qui vaut "main" ;
* on tente de checkout master ;
* si ça fonctionne on remplace la valeur de $master par "master" ;
* sinon on checkout main ;
* ça permet juste après de faire le git rebase upstream/$master avec le bon nom de branche.
À la fin la variable $master vaut le nom de ta branche de base, soit master pour les vieux dépôts, soit main pour les plus récents.
Vu que master n'est plus politiquement correct, même en dehors de la terminologie douteuse de master/slave.
Bref, c'est pragmatique, pas politique, j'ai affaire à des dépôts où la branche main s'appelle master et d'autres où la branche master s'appelle main. Enfin un truc du genre.
git rev-parse --abbrev-ref HEAD : T'as raison, ça marche bien, c'est plus propre !
Concernant le checkout plutôt que fetch, ici je fais ça :
* afficher le nom de la branche courante pour référence visuelle ;
* basculer sur mainster ;
* mettre à jour depuis origin/mainster ;
* pousser la mise à jour sur son dépôt gitlub.
Donc on bascule sur mainster, et on synchronise son dépôt perso avec l'origine. On pourrait aller sur l'interface de gitlub et faire une synchro là-bas, puis fetch/checkout localement, mais là c'est une seule commande dans mon terminal qui fait tout.
Ça évite d'aller clicouiller sur un site web...
Ok, en général je refais un checkout de ma branche et je rebase/merge depuis mainster, mais disons que jusqu'à présent j'ai jugé que l'automatisation de l'étape de synchro/mise à jour de mainster était suffisante pour mon besoin.
Ça me sert souvent pour mettre à jour des dépôts sur lesquels je bosse peu, mais dont je peux avoir besoin de la version à jour. Je suis en général déjà sur mainster, et je pourrais faire du fetch/checkout directement, mais faudrait vérifier qu'on n'est pas par hasard sur une branche, etc.
Disons que la commande gitmaster me ramène dans un état nominal permettant de démarrer un développement, et est la seule que j'adapte à la polémique master/main.
gitrepush: Ouaip, la fonction est pas clean. Je n'ai jamais cherché le --amend mais en effet ça sert pile à ça.
On pourrait donc simplifier en :
function gitrepush(){
git commit -a --amend --no-edit
git force
}# Ou plus simplealiasgitrepush="git commit -a --amend --no-edit && git force"
J'aime bien ton ragequit :)
J'aurais plutôt mis un loginctl suspend :)
[^] # Re: Du gitcode à partager - ou pas
Posté par Yth (Mastodon) . En réponse au lien « Et merde, Git!?! ». Évalué à 3.
Il faut voir les deux lignes :
* on crée une variable $master qui vaut "main" ;
* on tente de checkout master ;
* si ça fonctionne on remplace la valeur de $master par "master" ;
* sinon on checkout main ;
* ça permet juste après de faire le
git rebase upstream/$masteravec le bon nom de branche.À la fin la variable $master vaut le nom de ta branche de base, soit master pour les vieux dépôts, soit main pour les plus récents.
Vu que master n'est plus politiquement correct, même en dehors de la terminologie douteuse de master/slave.
Bref, c'est pragmatique, pas politique, j'ai affaire à des dépôts où la branche main s'appelle master et d'autres où la branche master s'appelle main. Enfin un truc du genre.
git rev-parse --abbrev-ref HEAD: T'as raison, ça marche bien, c'est plus propre !Concernant le checkout plutôt que fetch, ici je fais ça :
* afficher le nom de la branche courante pour référence visuelle ;
* basculer sur mainster ;
* mettre à jour depuis origin/mainster ;
* pousser la mise à jour sur son dépôt gitlub.
Donc on bascule sur mainster, et on synchronise son dépôt perso avec l'origine. On pourrait aller sur l'interface de gitlub et faire une synchro là-bas, puis fetch/checkout localement, mais là c'est une seule commande dans mon terminal qui fait tout.
Ça évite d'aller clicouiller sur un site web...
Ok, en général je refais un checkout de ma branche et je rebase/merge depuis mainster, mais disons que jusqu'à présent j'ai jugé que l'automatisation de l'étape de synchro/mise à jour de mainster était suffisante pour mon besoin.
Ça me sert souvent pour mettre à jour des dépôts sur lesquels je bosse peu, mais dont je peux avoir besoin de la version à jour. Je suis en général déjà sur mainster, et je pourrais faire du fetch/checkout directement, mais faudrait vérifier qu'on n'est pas par hasard sur une branche, etc.
Disons que la commande gitmaster me ramène dans un état nominal permettant de démarrer un développement, et est la seule que j'adapte à la polémique master/main.
gitrepush: Ouaip, la fonction est pas clean. Je n'ai jamais cherché le --amend mais en effet ça sert pile à ça.
On pourrait donc simplifier en :
J'aime bien ton ragequit :)
J'aurais plutôt mis un loginctl suspend :)