How can I update a remote branch after rewriting Git history?
When you rewrite the Git history locally, the remote branch will not be updated automatically. This can lead to a divergence between the local and remote branches. In that case, the remote will refuse to accept the changes, as the history doesn't match. In such as scenario, you need to force update the remote branch.
Using git push -f
is the solution to this problem. The -f
flag forces the update of the remote branch, overwriting it with the local branch's changes. This operation is necessary anytime your local and remote repository diverge.
# Usage: git push -f git checkout patch-1 git pull git rebase master # Local `patch-1` branch has been rebased onto `master`, thus diverging # from the remote `patch-1` branch git push -f # Force update the remote `patch-1` branch