web-dev-qa-db-fra.com

Force Push branche actuelle

Je rebase souvent les branches des fonctionnalités, puis je veux forcer leur envoi au serveur.

git Push --force Origin feature-mongodb-support

Existe-t-il un raccourci pour git Push --force Origin <current branch>?

39
iblue

Vous pouvez utiliser des alias pour raccourcir la commande. Utilisez-le comme ceci:

git config --global alias.fpush "Push --force Origin"

Maintenant, pour pousser votre branche tapez simplement:

git fpush feature-mongodb-support

Ou vous pouvez même coder en dur le nom de la branche dans la commande:

git alias fpush "Push --force Origin feature-mongodb-support"

et utilisez uniquement git fpush pour pousser votre travail précieux en amont.

Cependant, les mises à jour non avancées sont dangereuses car vous écraserez en principe tout l'historique sur le serveur qui s'est produit entre la dernière fusion/nouvelle base dans votre branche locale et le transfert forcé. Si vous avez besoin de les faire souvent, il y a définitivement quelque chose qui ne va pas dans votre flux de travail.

26
Sergey K.

Après avoir lu ces réponses et lu cette réponse à une question connexe ( https://stackoverflow.com/a/18782415/586 ), j'ai créé cet alias pour forcer Push to Origin en fonction du nom de la branche actuelle:

fp = "!git Push -f Origin \"$(git rev-parse --abbrev-ref HEAD)\""
6
jlleblanc

Cela devrait faire l'affaire:

git alias fpush "Push --force Origin"

Ce qui vous permettra d'utiliser git fpush comme une alternative plus courte.

2
Wes Hardaker

Pour forcer automatiquement le Push vers la branche suivie (quels que soient son nom et son amont), j'ai créé cet alias:

fbrpush=!git Push $(git rev-parse --abbrev-ref=loose --symbolic-full-name @{upstream} \
                    | sed 's:/: +:')

(la ligne est cassée pour plus de lisibilité)

(basé sur une autre SO réponse )

0
Klas Š.

Si vous utilisez oh my zsh vous pouvez simplement faire

ggfl

qui fera cela pour vous

git Push --force-with-lease Origin <your_argument>/$(current_branch)

https://github.com/robbyrussell/oh-my-zsh/wiki/Cheatsheet

0
Lukas