Eclipse EGit plugin allows one to perform most every day git operations through the gui. (e.g commit with a sign-off/gerrit ID. View history, hard-reset, difference comparisons, Stashing, branching, etc.. )
The main advantage is that it makes some operations faster than through the command line, (e.g one doesn't have to type in file names or copy commit-id's).
Egit is only a thin layer on top of git itself. So it does the same git commands underneath.
Linux/Windows/Mac. Already available in Red Hat Developer Toolset (DTS).
It is installed on most Eclipse distributions already.
sudo yum install eclipse-egit
To find out if you have it, go to the drop down menu Window -> Views -> Other ... search for "git".
You should see a bunch of Git views:
In case it is not, look here:
Git Staging Area
It's easy to add or remove files from staging area for commits.
Open the "Git Staging" view (as above) for your project.
You can un-stage by dragging files back again.
You might notice that the commit-ID is all 00's when you press the button. This is ok because it will be replaced with a full commit id when you do the actual commit.
As a bonus, you don't have to download the hooks script, Eclipse automatically generates a unique commit id for you.
You can perform hard-resets, branch of commits, rebases. You can view the files from individual commits in the bottom right plane and you can compare commits side-by-side. This is useful if you want to see what you did or what changes were pulled in:
And of course if you don't already know, you can import git repositories. (File -> Import).
Either clone a repo from URI or from a local git repository.
If you did a pull and have merge conflicts, the staging area will help you find files that conflict. Then you can use the merge tool to see a side by side comparison of your changes and the other person's changes. There is also a button to view the ancestor.
For details, please see Vogella's Merge-resolution section.
Once the merge is complete, add the files via the staging area and there will be a button to complete the merge.
For me personally, EGit fulfills 95% of my git needs. However some things I still prefer to do via the command line, e.g:
- Interactive rebase (pasting in commit id is sometimes easier than fiddling with gui)
- push to review (#gives me link to my gerrit review)
For a more complete tutorial, please visit our friend Vogella:
Feel free to contact me if you have questions: lufimtse AT redhat DOT com.