I know how to rebase onto a specific branch or tag using eGit in Eclipse, but I haven't found a way to rebase onto a specific sha1 using eGit. I'd like to do this in order to squash commits before pushing to upstream (ie, doing git rebase -i HEAD~n
where n is some number of commits ago where I want to rebase). Is this possible with eGit? If not, is there another Eclipse plugin I should be using tha开发者_如何学Pythont would provide this functionality?
EGit has rebase, but it does not yet have the interactive rebase you ask for.
I've been successful squashing commits using steps from this post (cut and pasted here):
If I want to squash the last m commits on the current branch then I
- select in history the first commit which I don't want to squash
- right-click and say "Team->Reset->Soft"
- right-click and say "Commit". This commit will contain all the changes of the last m commits together
It is currently available in Eclipse Oxygen
, it has it's own wizard for it.
- Get the branch you want in the
History
view - Right-click the commit before the one you want to change
- Find
Rebase interactive
and click it - The Rebase wizard will show up with the commits available to work upon
It works just like the console version, but on a GUI. Even if conflicts arise, it will help you through.
From the history view select the commit you want to rebase to, and create a branch called rebase-point
or whatever. Voila, you can now rebase to that branch, and delete it later if you want. I generally prefer using a named branch for things like this anyway, because it minimizes the chance for mistakes on my part. Alternately, consider that origin/master
is often the right rebase point if you're squashing commits for a push.
You can also rebase from the Eclipse History view.
- Select the repository from the Git Repositories view
- Right-click and select Show In History
- Select the commit you want to rebase the currently checked out branch on top of
- Right-click and select the Rebase on Top of item
- Note: You may need to select Show All Branches and Tags first from the History view toolbar to display the commit you are looking for in the table.
精彩评论