<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<body link="#355491" alink="#4262a1" vlink="#355491" style="background: #e2e2e2; margin: 0; padding: 20px;">

<div>
        <table cellpadding="0" bgcolor="#FFFFFF" border="0" cellspacing="0" style="border: 1px solid #dadada; margin-bottom: 30px; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                <tbody>
                        <tr>

                                <td>

                                        <table border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" style="border: solid 2px #ccc; background: #dadada; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                                                <tbody>
                                                        <tr>
                                                                <td bgcolor="#000000" valign="middle" height="58px" style="border-bottom: 1px solid #ccc; padding: 20px; -moz-border-radius-topleft: 3px; -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 5px; -webkit-border-top-left-radius: 5px;">
                                                                        <h1 style="color: #333333; font: bold 22px Arial, Helvetica, sans-serif; margin: 0; display: block !important;">
                                                                        <!-- To have a header image/logo replace the name below with your img tag -->
                                                                        <!-- Email clients will render the images when the message is read so any image -->
                                                                        <!-- must be made available on a public server, so that all recipients can load the image. -->
                                                                        <a href="https://community.jboss.org/index.jspa" style="text-decoration: none; color: #E1E1E1">JBoss Community</a></h1>
                                                                </td>

                                                        </tr>
                                                        <tr>
                                                                <td bgcolor="#FFFFFF" style="font: normal 12px Arial, Helvetica, sans-serif; color:#333333; padding: 20px;  -moz-border-radius-bottomleft: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 5px; -webkit-border-bottom-left-radius: 5px;"><h3 style="margin: 10px 0 5px; font-size: 17px; font-weight: normal;">
    How to use Eclipse EGit with Github (in JBoss Tools)
</h3>
<span style="margin-bottom: 10px;">
    modified by <a href="https://community.jboss.org/people/adietish">Andre Dietisheim</a> in <i>JBoss Tools</i> - <a href="https://community.jboss.org/community/tools/blog/2013/06/18/how-to-use-eclipse-egit-with-github-in-jboss-tools">View the full blog post</a>
</span>
<hr style="margin: 20px 0; border: none; background-color: #dadada; height: 1px;">

<div class="jive-rendered-content"><h1>What is this all about?</h1><p>At JBoss Tools we use git when it comes to source control and have all our components hosted on Github. Eclipse offers very capable and handy git tooling with <strong>EGit</strong>. Nevertheless most of us still use the command line even though we do and use Eclipse on a daily base. The main reasons are manifold. EGit was for a long time still on the maturing curve and was not on par with the command line. Migrating users did not feel safe either since EGit was not operated in the way it used to be with CVS, SVN etc. Furthermore many UIs in EGit dont try to accomodate the newbie user but offer all the nots and bolts instead. </p><p>I'm using the EGit/JGit API (not the UI) in our OpenShift tooling. EGit/JGit is thus thus vital for my product. I therefore started to eat my own dogfood and forced myself to use EGit where I had the reflex to switch to the command line before. I found a pretty mature and very capable EGit. It is IMHO even more handy than the command line in certain usecases. I'll therefore try to improve EGit and convert most of us to us to use what was an unloved child before. I am very convinced that a little effort here and there will tranform EGit into first class and most excellent tooling that noone wants to miss.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p><iframe frameborder="0" height="350" src="https://www.youtube.com/embed/h2imzvyxAhg" width="425">

</iframe></p><h1>A tale of branches and main repos.</h1><p>As I already mentioned, all JBoss Tools components are available from Github. All developes within JBoss Tools have their very own fork of those master repos and also have them on Github. When it comes to issue tracking, we use Jira. Whenever we tackle an issue we branch from master and commit our work to this topic branch. Since git is decentralized, one would have a local clone of its Github fork, commit the changes to it and push it back to Github. A pull request then notifies the maintainer of the master repo to review&#160; the suggested changes and merge them into the master branch in the master repo. </p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h1>Clone your Fork</h1><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Everything starts by having a personal fork on github. Once this is done one clones this repository to the local machine by issuing (I'm cloning my fork of the openshift-java-client here)<span style="font-size: 10pt;">:</span></p><blockquote class="jive-quote">git clone git://github.com/adietish/openshift-java-client.git<br/></blockquote><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>In EGit things are as easy as on the command line. You make sure that you have the Git URI in your clipboard and switch to the <strong>Git Repository Exploring</strong> perspective...</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p><a href="https://community.jboss.org/servlet/JiveServlet/showImage/38-5239-20943/git-repository-exploring.png"><span> https://community.jboss.org/servlet/JiveServlet/downloadImage/38-5239-20943/205-39/git-repository-exploring.png </span></a></p><p>You pick the <strong>Clone a Git Repository</strong> action from the toolbar in the<strong> Git Repositories</strong> view...</p><p><a href="https://community.jboss.org/servlet/JiveServlet/showImage/38-5239-20957/clone-fork.png"><span> https://community.jboss.org/servlet/JiveServlet/downloadImage/38-5239-20957/310-47/clone-fork.png </span></a></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>... and EGit will use the Git URI in your clipboard to prefill the upcoming cloning settings:</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p><a href="https://community.jboss.org/servlet/JiveServlet/showImage/38-5239-20958/clone-fork-2.png"><span> https://community.jboss.org/servlet/JiveServlet/downloadImage/38-5239-20958/310-298/clone-fork-2.png </span></a></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>In an additional step you tell EGit where to clone to and once you're done the new repository will show up in your <strong>Git Repositories</strong> view:</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p><a href="https://community.jboss.org/servlet/JiveServlet/showImage/38-5239-20959/imported-fork.png"><span> https://community.jboss.org/servlet/JiveServlet/downloadImage/38-5239-20959/310-35/imported-fork.png </span></a></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>A last step involves importing the Eclipse project to your workspace. You pick <span style="font-size: 10pt;"><strong>Import Projects...</strong></span><span style="font-size: 10pt;"> from the context menu of your repository and you're all done:</span></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p><a href="https://community.jboss.org/servlet/JiveServlet/showImage/38-5239-20960/import-project.png"><span> https://community.jboss.org/servlet/JiveServlet/downloadImage/38-5239-20960/310-248/import-project.png </span></a> </p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h1>Create your topic branch</h1><p>Every issue is tackled in a separate topics branch. That allows us to separate the concerns when coding. It also allows us to switch among different task if priorities shift. We simply switch topic branch and focus on the current task.</p><p>To create a new topic branch based on the current master branch one does:</p><blockquote class="jive-quote"><p>git checkout -b my-topic master</p></blockquote><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Using EGit you wont have any more steps involved, it is as easy as it is with the command line. In the <strong>Git Repository Exploring </strong>perspective you unfold the branches of your local git repo, select the branch you want your topic branch to be based on (which usually is master) and pick <strong>Create Branch...</strong> in the context menu.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p><a href="https://community.jboss.org/servlet/JiveServlet/showImage/38-5239-20951/create-branch.png"><span> https://community.jboss.org/servlet/JiveServlet/downloadImage/38-5239-20951/310-278/create-branch.png </span></a></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>In the upcoming dialog you choose the name of your new branch and hit <strong>Finish</strong>. <span style="font-size: 10pt;">EGit will by default switch your code to the new branch (see </span><span style="font-size: 10pt;"><strong>Checkout new branch</strong></span><span style="font-size: 10pt;"> checkbox).</span></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p><a href="https://community.jboss.org/servlet/JiveServlet/showImage/38-5239-20952/create-topic-branch.png"><span> https://community.jboss.org/servlet/JiveServlet/downloadImage/38-5239-20952/310-239/create-topic-branch.png </span></a></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h1>Do your work</h1><p>Now that you have a branch for your task you're ready to do your changes. Get to the Java or JEE perspective and make sure you have the <strong>Git Staging</strong> view opened. It will track the files you change and make them show up in the <strong>Unstaged Changes</strong>. <span style="font-size: 10pt;">If I change the README.md in my project and save it will instantly get listed in the </span><span style="font-size: 10pt;"><strong>Unstaged Changes</strong></span><span style="font-size: 10pt;">:</span></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p><a href="https://community.jboss.org/servlet/JiveServlet/showImage/38-5239-20953/unstaged.png"><span> https://community.jboss.org/servlet/JiveServlet/downloadImage/38-5239-20953/450-158/unstaged.png </span></a></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h1>Commit and Push</h1><p>As soon as we're done with all our coding we're ready to commit and push. When we started we cloned our Github fork to the local machine. Our local repository is thus originating from the Github fork, it's <strong>Origin</strong> is pointing to this Github repository. Committing and pushing our changes to this fork is done in 2 steps when using the git command line:</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><blockquote class="jive-quote"><p>git commit -a -m "[JIRA-XXXX] corrected readme"</p><p>git push origin my-topic-branch</p></blockquote><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>In EGit things are even more handy. it's mostly a single click experience: </p><p>PIck the unstaged files that you want to commit and drag and drop them to the <strong>Staged Changes</strong>. Then provide some commit message and you're ready to go:</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p><a href="https://community.jboss.org/servlet/JiveServlet/showImage/38-5239-20955/staged.png"><span> https://community.jboss.org/servlet/JiveServlet/downloadImage/38-5239-20955/450-158/staged.png </span></a></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Hit <strong>Commit and Push</strong>:</p><p><a href="https://community.jboss.org/servlet/JiveServlet/showImage/38-5239-20956/commit-and-push.png"><span> https://community.jboss.org/servlet/JiveServlet/downloadImage/38-5239-20956/137-46/commit-and-push.png </span></a></p><p><span style="font-size: 10pt;">EGit will commit your changes to your topic branch and push it to its <strong>origin</strong>, the fork on Github</span><span style="font-size: 10pt;">. The topic branch only exists on the local machine, pushing it to Github will thus create a new branch in this remote repository. EGit will show you that in the upcoming dialog:</span></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p><span style="font-size: 10pt;"><a href="https://community.jboss.org/servlet/JiveServlet/showImage/38-5239-20961/pushed-to-origin.png"><span> https://community.jboss.org/servlet/JiveServlet/downloadImage/38-5239-20961/450-290/pushed-to-origin.png </span></a></span></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h1>Oh, my change was incomplete</h1><p>If I now discover that I forgot to do some modifications I could easily add another commit and push it as I just did before. The commit history would then show 2 distinct commits that tackle the very same topic though. I personally prefer to ammend in these cases. I could alternatively merge these 2 commits into a single one (by rebasing). I personally prefer to amend since this keeps me focused, I wont have to rebase once I'm ready to merge. </p><p>Let us do the change we had forgotten and amend it. On the command line this would look like this:</p><blockquote class="jive-quote"><p>git commit -a --amend</p></blockquote><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p><span style="font-size: 10pt;">In Eclipse I'll proceed as shown before. I change my files, drag them from unstaged to staged and tell EGit to amend by htting <strong>Amend Previous Commit</strong>:</span></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p><span style="font-size: 10pt;"><a href="https://community.jboss.org/servlet/JiveServlet/showImage/38-5239-20962/amend.png"><span> https://community.jboss.org/servlet/JiveServlet/downloadImage/38-5239-20962/450-97/amend.png </span></a></span></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>When hitting <strong>Amend Previous Commit</strong> the previous commit message shows up in the message area.</p><p>Also Notice the warning that the Git Staging view is issuing. It tells you that your current commit was already pushed to a remote branch. It tells you that pushing will most likely fail if done to the very same remote:</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p><a href="https://community.jboss.org/servlet/JiveServlet/showImage/38-5239-20973/already-pushed.png"><span> https://community.jboss.org/servlet/JiveServlet/downloadImage/38-5239-20973/310-212/already-pushed.png </span></a></p><h1>Doors shut, push rejected?</h1><p>If I now hit <strong>Commit and Push</strong> committing will succeed but pushing wont. It'll tell me that it is rejected, that it is <strong>non-fast-forward</strong>:</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p><a href="https://community.jboss.org/servlet/JiveServlet/showImage/38-5239-20963/rejected-non-fast-forward.png"><span> https://community.jboss.org/servlet/JiveServlet/downloadImage/38-5239-20963/450-280/rejected-non-fast-forward.png </span></a></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Amending modifies an existing commit. I had pushed this commit to my fork already. The new push sends a modifed version of the very same commit. The remote therefore rejects it and tells me that I pushed a conflicting change, a change that is non-fast-forward. </p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h1>Use the force, Luke!</h1><p>To solve this conflict I'll use the force. I changed my commit on purpose, I wanted to add some missing pieces. I therefore insist on pushing my change and tell git to<span style="font-size: 10pt;"> </span><span style="font-size: 10pt;"><strong>force my push</strong></span><span style="font-size: 10pt;">. Using the command line one does: </span></p><blockquote class="jive-quote"><p>git push -f origin my-topic-branch</p></blockquote><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>The Git Staging view unfortunately doesn't offer this option yet. We should consider ways of pushing force in the staging view in order to keep the workflow smooth. </p><p>To currently push force in EGit you have to get to the full fledged push action that is accessible in the <strong>project explorer</strong>: <strong>Team -&gt; Remote -&gt; Push...</strong></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p><strong><a href="https://community.jboss.org/servlet/JiveServlet/showImage/38-5239-20964/team-remote-push.png"><span> https://community.jboss.org/servlet/JiveServlet/downloadImage/38-5239-20964/450-333/team-remote-push.png </span></a></strong></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>In the upcoming wizard you can then choose the remote repository you want to push to. I therefore pick <strong>origin</strong>, which points to Github fork:</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p><a href="https://community.jboss.org/servlet/JiveServlet/showImage/38-5239-20965/push-choose-remote.png"><span> https://community.jboss.org/servlet/JiveServlet/downloadImage/38-5239-20965/310-110/push-choose-remote.png </span></a></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>On the next wizard page I then pick the branch I want to push:</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p><a href="https://community.jboss.org/servlet/JiveServlet/showImage/38-5239-20966/push-source-ref.png"><span> https://community.jboss.org/servlet/JiveServlet/downloadImage/38-5239-20966/310-185/push-source-ref.png </span></a></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>EGit will then pick the existing (remote) topic branch as destination:</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p><a href="https://community.jboss.org/servlet/JiveServlet/showImage/38-5239-20967/push-destination-ref.png"><span> https://community.jboss.org/servlet/JiveServlet/downloadImage/38-5239-20967/310-104/push-destination-ref.png </span></a></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>I can then add this source-destination pair to the refspecs that EGit will push:</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p><a href="https://community.jboss.org/servlet/JiveServlet/showImage/38-5239-20968/push-add-refspec.png"><span> https://community.jboss.org/servlet/JiveServlet/downloadImage/38-5239-20968/450-132/push-add-refspec.png </span></a></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>EGit then lists it in the push specifications and allows me to further further fine-tune it:</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p><a href="https://community.jboss.org/servlet/JiveServlet/showImage/38-5239-20969/push-refspec.png"><span> https://community.jboss.org/servlet/JiveServlet/downloadImage/38-5239-20969/450-288/push-refspec.png </span></a></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>I can then tell it push force in the <strong>Force Update</strong> column:</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p><a href="https://community.jboss.org/servlet/JiveServlet/showImage/38-5239-20970/push-force.png"><span> https://community.jboss.org/servlet/JiveServlet/downloadImage/38-5239-20970/450-240/push-force.png </span></a></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Once I executed all these steps I'm ready to go and can hit <strong>Finish</strong>, telling EGit to push force my local topic branch.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p><a href="https://community.jboss.org/servlet/JiveServlet/showImage/38-5239-20971/push-successfull.png"><span> https://community.jboss.org/servlet/JiveServlet/downloadImage/38-5239-20971/450-270/push-successfull.png </span></a></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>In my opinion the wizard we just used - especially the 2nd page where you build a push-force refspec is far too complicated. It's not inutitive enough, especially for newbie users. The git command line is so much simpler. We should seriously think about providing a simpler version which fits the vast majority of the usecases. A very simple first improvement is to have the current branch preselected (in Source ref). </p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h1>Let there be merge</h1><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Now that we pushed our topic branch to Github we're ready to file a pull request and let the review happen. Github contributed Mylin connectors for EGit/Github. I honestly didn't find out how to file pull-requests though. Looking into their code this must be possible, the functionality is there, but I didnt get how to use the UI to file those. That's another area where I'd love to enhance. IMHO it should be possible to file pull requests right from Eclipse. I'm not even sure if we really should require Mylyn. Mylyn is very nice, no doubt about But at times you just want to create the PR and dont want to edit it. Having it prefilled with the commit-message is fairly sufficient.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>For the sake of breveity I wont get into details how one would file a pull request on github, I'll just assume we filed it on github.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p><a href="https://community.jboss.org/servlet/JiveServlet/showImage/38-5239-20974/pull-request.png"><span> https://community.jboss.org/servlet/JiveServlet/downloadImage/38-5239-20974/310-43/pull-request.png </span></a></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>I then get back to the <strong>Git Repository Exploring </strong>perspective and merge master with my topics branch. I double click my <strong>master</strong> branch and make sure it's checked out. I then pick <strong>Merge... </strong>from its context menu:</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p><a href="https://community.jboss.org/servlet/JiveServlet/showImage/38-5239-20975/merge.png"><span> https://community.jboss.org/servlet/JiveServlet/downloadImage/38-5239-20975/310-270/merge.png </span></a></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>...and tell the wizard to merge my master with my topic branch.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p><a href="https://community.jboss.org/servlet/JiveServlet/showImage/38-5239-20976/merge-topics-branch.png"><span> https://community.jboss.org/servlet/JiveServlet/downloadImage/38-5239-20976/310-343/merge-topics-branch.png </span></a></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Once the merge is done I can push it to master by using the push outlined above. This time I'll just push to the master repo, too and publish my code the official repo. My task is finished, I merged my topics branch (my work) into master and made it official JBoss Tools code. I can now kill my topics local and remote branches.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h1>Egit, what about new clothes?</h1><p>In the above I spotted several steps that could get enhanced to get your EGit journey perfect. EGit has all you need, it's became pretty stable and mature over the years. I'd love to gather those ideas and wishes and get your feedback!</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h2>Push Force</h2><p>A first shortcoming I spotted is that you cannot push force from git staging view. Maybe that's a good practice since push force should stay the exception, it should not become the general rule. It should not be too easy since there's too much you can do wrong and loose all your work.Nevertheless I'd love to allow this common practice when correcting pull-request (in github or EGit gerrit) in the <strong>Git Staging</strong> view.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><ul><li>What about displaying a <strong>force update </strong>checkbox when the <strong>already pushed</strong> warning is displayed? <br/><a href="https://community.jboss.org/servlet/JiveServlet/showImage/38-5239-20977/already-pushed-2.png"><span> https://community.jboss.org/servlet/JiveServlet/downloadImage/38-5239-20977/310-217/already-pushed-2.png </span></a></li><li>Alternatively we could ask the user if he wants to push force in something similar to this:<br/><br/><a href="https://community.jboss.org/servlet/JiveServlet/showImage/38-5239-20978/want-to-push-force.png"><span> https://community.jboss.org/servlet/JiveServlet/downloadImage/38-5239-20978/310-141/want-to-push-force.png </span></a></li></ul><h2>Push dialog</h2><p>IMHO the dialog that pops up when you want to push to some remote could get quite some love. </p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><ul><li>First of all it pops up with no default being filled out. Having the current branch selected as source and the corresponding remote on origin (that gets selected as soon as you choose your source) would spare you 1 first unneeded click:<br/><a href="https://community.jboss.org/servlet/JiveServlet/showImage/38-5239-20980/push.png"><span> https://community.jboss.org/servlet/JiveServlet/downloadImage/38-5239-20980/310-93/push.png </span></a></li><li>Secondly the dialog is far too complex and not intuitive enough for the newbie user. There are far too many nots and bolts for the default usecase. We could offer the simple 1:1 push with a force option in a single line and hide the advanced option behind an <strong>Advanced &gt;&gt;</strong> button:<br/><a href="https://community.jboss.org/servlet/JiveServlet/showImage/38-5239-20981/push-advanced.png"><span> https://community.jboss.org/servlet/JiveServlet/downloadImage/38-5239-20981/310-140/push-advanced.png </span></a></li></ul><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h1>Github Pull-Request</h1><p>I might be wrong but it looks very much as if there was no way to create a Github pull request within Eclipse. One has to use hub or get to the website. I'd love to have this in Eclipse so that there's no need to switch app. IMHO we should offer this with or without Mylyn. Maybe we should offer an action in the context menu that opens the Mylyn pull-request editor prefilled with all the relevant informations that I can then just confirm.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h1>Feeback please!</h1><p>I'd love to get your feedback, get to know what you guys think. Please shout at me, confirm me or comment with your very own ideas. Thanks!</p></div>

<div style="background-color: #f4f4f4; padding: 10px; margin-top: 20px;">
    <p style="margin: 0;">Comment by <a href="https://community.jboss.org/community/tools/blog/2013/06/18/how-to-use-eclipse-egit-with-github-in-jboss-tools">going to Community</a></p>

</div></td>
                        </tr>
                    </tbody>
                </table>


                </td>
            </tr>
        </tbody>
    </table>

</div>

</body>
</html>