EGit on Eclipse: How to git push

I've run into a problem with my origin/branch being out of sync with my local branch, see below

我的提交历史

When I try to PUSH from my local "staging" branch to the origin/staging branch I get the "rejected - non-fast-forward" error.

I use Eclipse with the EGit module on a windows PC.

From another post here I see that I can resolve my issue with the "git push --force origin staging" to over-ride the origin/staging branch with my local branch.

However, I don't see that option with EGit, and I don't see how to open a console in EGit to do this?

Does anyone know if I can do this within EGit?

OK - fixed my own issue. It appears I had issues with Commits that had not been Pushed back to origin/staging. Found an overview here on using the "git reset XXX : without --hard" which resets the branch marker, but keeps the local changes for later recommits.

Thanks, Jason


I have just come across a similar issue and here's what I did:

  • Team -> Push Branch...
  • Force overwrite of branch on remote if it exists and has diverged

  • Are you sure you want to overwrite the remote branch and lose all those commits?

    If there are commits on the remote branch that aren't in your local branch, you should merge them into your local branch before pushing

    For example, whilst on your local staging branch:

    git merge origin/staging
    

    However, if you're sure, then I suggest you check the "Force update" option on the push refspec.

    It's a little complicated to get to, but the EGit user guide explains it when discussing Pushing to other Repositories, and the specific section that mentioned the "Force Update" option is in the section on Push Ref Specifications

    Edit 0: With respect to your failed merge, I've not yet encountered a merge that fails outright rather than result in a conflict, and it appears it may be a known issue


    If you do a force push, you will lose everything added to origin/staging after fixing the missing Location: string in the header, and you'll break everyone else's branches. I don't think that's what you want. You probably want to do a pull first, then the push will work just fine.

    链接地址: http://www.djcxy.com/p/49234.html

    上一篇: 合并vs rebase

    下一篇: 在Eclipse上EGit:如何git推