问题
I recently did a hard reset of my local git repository: In other words I reset it to an earlier point in time. Now when I try to push up to the origin
it tells me that it can't because the origin
contains work of a later date than my repository. This makes sense, but I don't care about the work the origin has after my local repository.
If I first pull
, which is what I am told to do, I presume that my local HEAD
will then become whatever the origin
HEAD
was, i.e. with the additional work and my hard reset will be for nought.
How should I proceed here? To recap, I don't care about the additional later work on the origin, but do care about the extra work on the local done after the hard reset.
I am beginning to think that hard resets are not a great idea.
回答1:
You can push --force
to override the current HEAD
of the origin
, even if your local branch is not a descendant of it.
However: You should be aware of the consequences: Other developers working on the same repository now cannot easily pull in the changes, but have to reset / rebase to the origin. Using forced pushes / rewriting pushed history is bad and should be avoided whenever possible.
See also another answer here on StackOverflow on the dangers of forced pushes: How to properly force a Git Push?
来源:https://stackoverflow.com/questions/22365878/trouble-pushing-to-origin-after-local-hard-reset