问题
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>
?
回答1:
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.
回答2:
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)\""
回答3:
This should do the trick:
git alias fpush "push --force origin"
Which will let you use git fpush
as a shorter alternative.
回答4:
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)
https://github.com/robbyrussell/oh-my-zsh/wiki/Cheatsheet
回答5:
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