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.
If you double click on your files, you will see a comparison between your modifications and HEAD. This is useful when you want to tidy your code before a commit:
Now you can drag files into the staging area to prepare for your commit.
You can iterate over your files very quickly this way (compare & add to staging).
You can un-stage by dragging files back again.
You can perform a commit with 'signed off' a 'gerrit-id' and you can amend if amendment is needed:
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.
Enable the git tool bar for your perspective:
Open the drop down menu: Window -> Customize Perspective -> Command Groups Availability
find 'git' and enable it:
Now click on a file and then on the branching icon:
And you can now switch to another branch, checkout a new branch, delete/rename existing branches. You can even branch based on a remote repo or a stash:
You can enable the 'git history' view (Drop down menu: Window -> Views -> Other) and view the git history:
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:
With filters you can see which commits have touched the file that you have selected and which lines were altered by whom:
Git Annotation (blame)
If you select a file ->team -> show annotations, the left margin turns orange. When hovering over the margin, a window pops up showing who last-modified the line.
You can open the "Git Repository" view. (Window -> view -> other). From here you can stash by right-clicking on a repo. You can view your stashes and apply them.
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.