I often rebase feature branches and then want to force push them to the server.
git push --force origin feature-mongodb-support
Is there any shortcut for git push --force origin <current branch>
?
You can use aliases to shorten the command. Use it like this:
git config --global alias.fpush "push --force origin"
Now to push your branch just type:
git fpush feature-mongodb-support
Or you can even hardcode the branch name into the command:
git alias fpush "push --force origin feature-mongodb-support"
and use only git fpush
to push your precious work into the upstream.
However, non-fast-forward updates are dangerous since you will basically overwrite all the history on server that occurred between the last merge/rebase into your local branch and the forced push. If you need to do them often there is definitely something wrong in your workflow.
After reading these answers and reading this answer to a related question (https://stackoverflow.com/a/18782415/586), I created this alias to force push to origin
based on the current branch name:
fp = "!git push -f origin \"$(git rev-parse --abbrev-ref HEAD)\""
This should do the trick:
git alias fpush "push --force origin"
Which will let you use git fpush
as a shorter alternative.
If you use oh my zsh you can simply do
ggfl
which will do this for you
git push --force-with-lease origin <your_argument>/$(current_branch)
To automatically force-push to the branch that is tracked (regardless of its name and upstream), I've devised this alias:
fbrpush=!git push $(git rev-parse --abbrev-ref=loose --symbolic-full-name @{upstream} \
| sed 's:/: +:')
(line is broken for readability)
(based on another SO answer)
来源:https://stackoverflow.com/questions/11453807/force-push-current-branch