Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.egit.doc/help/EGit/User_Guide/Tasks.html')
-rw-r--r--org.eclipse.egit.doc/help/EGit/User_Guide/Tasks.html745
1 files changed, 391 insertions, 354 deletions
diff --git a/org.eclipse.egit.doc/help/EGit/User_Guide/Tasks.html b/org.eclipse.egit.doc/help/EGit/User_Guide/Tasks.html
index b14e6d861b..ab4f50dfc3 100644
--- a/org.eclipse.egit.doc/help/EGit/User_Guide/Tasks.html
+++ b/org.eclipse.egit.doc/help/EGit/User_Guide/Tasks.html
@@ -53,7 +53,7 @@
<h4 id="The_longer_story">The longer story</h4>
<h5 id="Eclipse_Workspace_and_Repository_working_directory">Eclipse Workspace and Repository working directory</h5>
<p>Git Repositories can be created in different ways, for example by cloning from an existing Repository, by creating one from scratch, or by using the EGit Sharing wizard.</p>
- <p>In any case (unless you create a "bare" Repository, but that't not discussed here), the new Repository is essentially a folder on the local hard disk which contains the "working directory" and the metadata folder. The metadata folder is a dedicated child folder named ".git" and often referred to as ".git-folder". It contains the actual repository (i.e. the Commits, the References, the logs and such).</p>
+ <p>In any case (unless you create a "bare" Repository, but that's not discussed here), the new Repository is essentially a folder on the local hard disk which contains the "working directory" and the metadata folder. The metadata folder is a dedicated child folder named ".git" and often referred to as ".git-folder". It contains the actual repository (i.e. the Commits, the References, the logs and such).</p>
<p>The metadata folder is totally transparent to the Git client, while the working directory is used to expose the currently checked out Repository content as files for tools and editors.</p>
<p>Typically, if these files are to be used in Eclipse, they must be imported into the Eclipse workspace in one way or another. In order to do so, the easiest way would be to check in .project files from which the "Import Existing Projects" wizard can create the projects easily. Thus in most cases, the structure of a Repository containing Eclipse projects would look similar to something like this:</p>
<p>
@@ -65,7 +65,7 @@
<li>It is probably not a good idea to make a project the root folder of your Repository</li>
</ul>
<dl>
- <dd>The reason is that you will never be able to add another project to this Repository, as the .project file will occupy the root folder; you could still add projects as sub-folders, but this kind of project nesting is known to cause lots of problems all over the place. In order to add another project, you would have to move the project to a sub-folder in the Repository and add the second project as another sub-folder before you could commit this change. </dd>
+ <dd>The reason is that you will never be able to add another project to this Repository, as the .project file will occupy the root folder; you could still add projects as sub-folders, but this kind of project nesting is known to cause lots of problems all over the place. In order to add another project, you would have to move the project to a sub-folder in the Repository and add the second project as another sub-folder before you could commit this change.</dd>
</dl>
<ul>
<li>It is a good idea to keep your Repository outside of your Eclipse Workspace</li>
@@ -90,17 +90,17 @@
<a href="Creating_a_Repository" title="EGit/User_Guide#Creating_a_Repository">Creating a Repository</a>).
</p>
<h3 id="Creating_a_Git_Repository_for_multiple_Projects">Creating a Git Repository for multiple Projects</h3>
- <p>You may first create multiple projects under a common directory and then create a common repository for all projects in one go: </p>
+ <p>You may first create multiple projects under a common directory and then create a common repository for all projects in one go:</p>
<ul>
- <li>create the Eclipse projects e.g. a, b, c under a common directory e.g. <span style="font-family:monospace;">/repos/examples/</span> </li>
+ <li>create the Eclipse projects e.g. a, b, c under a common directory e.g. <span style="font-family:monospace;">/repos/examples/</span></li>
<li>select all projects a, b, c - from context menu click
<b>Team &gt; Share Project &gt; Git</b>
</li>
<li>press
<b>Next</b>
</li>
- <li>select all projects a, b, c </li>
- <li>the wizard automatically moves up the default repository location to the parent folder <span style="font-family:monospace;">/repos/examples/</span> since multiple projects have been selected </li>
+ <li>select all projects a, b, c</li>
+ <li>the wizard automatically moves up the default repository location to the parent folder <span style="font-family:monospace;">/repos/examples/</span> since multiple projects have been selected</li>
<li>click
<b>Create Repository</b> and
<b>Finish</b>
@@ -110,42 +110,42 @@
<br/>
</p>
<h2 id="Starting_from_existing_Git_Repositories">Starting from existing Git Repositories</h2>
- <p>In order to work with the content of a Git repository in the Eclipse workbench, the contained files and folders must be imported as projects. In principle, this import can be done using the generic "New Project" or "Import..." wizards, since the working directory of a Git Repository is just a normal directory in the local file system. However, the newly created projects would still have to be shared manually with Git. The "Import Projects from Git" wizards integrates project import and sharing and also offers some extra convenience. </p>
+ <p>In order to work with the content of a Git repository in the Eclipse workbench, the contained files and folders must be imported as projects. In principle, this import can be done using the generic "New Project" or "Import..." wizards, since the working directory of a Git Repository is just a normal directory in the local file system. However, the newly created projects would still have to be shared manually with Git. The "Import Projects from Git" wizards integrates project import and sharing and also offers some extra convenience.</p>
<h3 id="Starting_the_import_wizard">Starting the import wizard</h3>
<p>To start the wizard click
- <b>Import &gt; Git &gt; Projects from Git</b>
+ <b>Import &gt; Git &gt; Projects from Git</b>
</p>
- <p>If you started in a clean workspace, the first page will display an empty list: </p>
+ <p>If you started in a clean workspace, the first page will display an empty list:</p>
<p>
- <img border="0" src="images/Egit-0.9-import-projects-select-repository.png"/>
+ <img border="0" src="images/Egit-0.9-import-projects-select-repository.png"/>
</p>
- <p>Before you can continue, you need to add one or several Git repositories to the list. If you have already repositories in the list, this step is optional. </p>
+ <p>Before you can continue, you need to add one or several Git repositories to the list. If you have already repositories in the list, this step is optional.</p>
<h3 id="Cloning_or_adding_Repositories">Cloning or adding Repositories</h3>
- <p>There are two ways to add Git repositories to the list: </p>
+ <p>There are two ways to add Git repositories to the list:</p>
<ol>
- <li>Clone a remote repository </li>
+ <li>Clone a remote repository</li>
<li>Add an existing repository from your local file system</li>
</ol>
<h4 id="Cloning_a_Repository">Cloning a Repository</h4>
<p>The first option is used if you start with a remote repository. The clone operation will copy that repository to your local file system. To start the Clone Wizard click
<b>Clone...</b>. The Clone Wizard is described in more detail in
- <a href="Cloning_Remote_Repositories" title="EGit/User Guide#Cloning_Remote_Repositories">Cloning Remote Repositories</a>. Upon successful completion of the clone operation, the newly cloned repository appears in the list automatically.
+ <a href="Cloning_Remote_Repositories" title="EGit/User Guide#Cloning_Remote_Repositories">Cloning Remote Repositories</a>. Upon successful completion of the clone operation, the newly cloned repository appears in the list automatically.
</p>
<h4 id="Adding_a_Repository">Adding a Repository</h4>
<p>The second option is useful if you already have a repository in your local file system, for example because you have cloned it earlier, you created it from scratch or you copied it from somewhere else. Click
<b>Add...</b>; and select a directory in the local file system. Press
- <b>Search</b> to trigger a scan for Git repositories contained in this directory. If Git repositories are found, they will be listed and you can select repositories to add&nbsp;:
+ <b>Search</b> to trigger a scan for Git repositories contained in this directory. If Git repositories are found, they will be listed and you can select repositories to add&nbsp;:
</p>
<p>
- <img border="0" src="images/Egit-0.11-import-projects-add-dialog.png"/>
+ <img border="0" src="images/Egit-0.11-import-projects-add-dialog.png"/>
</p>
- <p>After successful completion, the repository list should contain some repositories: </p>
+ <p>After successful completion, the repository list should contain some repositories:</p>
<p>
- <img border="0" src="images/Egit-0.11-import-projects-filled-list.png"/>
+ <img border="0" src="images/Egit-0.11-import-projects-filled-list.png"/>
</p>
<h3 id="Selecting_a_Repository_from_the_List">Selecting a Repository from the List</h3>
<p>You can now select a repository and click
- <b>Next</b>. On the following wizard page, you will decide how to import projects.
+ <b>Next</b>. On the following wizard page, you will decide how to import projects.
</p>
<h3 id="Importing_projects">Importing projects</h3>
<p>This page offers a group with radio buttons that allow you to select a wizard and a directory tree that optionally allows you to select a folder in the working directory.</p>
@@ -154,33 +154,33 @@
</p>
<h3 id="Wizard_for_project_import">Wizard for project import</h3>
<h4 id="Import_Existing_Projects">Import Existing Projects</h4>
- <p>If this radio button is selected, the wizard will scan the local file system for <tt>.project</tt> files and display the projects found for being imported. This is the most comfortable solution and should be used if <tt>.project</tt> files are checked into the Repository. </p>
+ <p>If this radio button is selected, the wizard will scan the local file system for <tt>.project</tt> files and display the projects found for being imported. This is the most comfortable solution and should be used if <tt>.project</tt> files are checked into the Repository.</p>
<h5 id="Limiting_the_Scope_for_Project_Import">Limiting the Scope for Project Import</h5>
<p>In this case, the directory tree at the bottom is active. You can limit the search for <tt>.project</tt> files by selecting a folder in this tree, otherwise the complete working directory of the repository will be scanned. On the next page, a list of the found projects (if any) will be shown. This is very similar to the generic
- <b>Import Existing Projects</b> wizard, but has some additional filtering capabilities:
+ <b>Import Existing Projects</b> wizard, but has some additional filtering capabilities:
</p>
<p>
- <img border="0" src="images/Egit-0.9-import-projects-select-projects.png"/>
+ <img border="0" src="images/Egit-0.9-import-projects-select-projects.png"/>
</p>
<h4 id="Use_the_New_Projects_Wizard">Use the New Projects Wizard</h4>
- <p>When this option is chosen, the generic "New Project" wizard will open. After completion of the "New Project" wizard, the "Import Projects from Git" wizard will resume and assist with sharing the projects you just created. </p>
- <p>In this case, the directory tree at the bottom is inactive, as the selection is not relevant for the "New Project" wizard. </p>
+ <p>When this option is chosen, the generic "New Project" wizard will open. After completion of the "New Project" wizard, the "Import Projects from Git" wizard will resume and assist with sharing the projects you just created.</p>
+ <p>In this case, the directory tree at the bottom is inactive, as the selection is not relevant for the "New Project" wizard.</p>
<h4 id="Import_as_General_Project">Import as General Project</h4>
- <p>This option can be helpful when there are neither <tt>.project</tt> files available nor a suitable "New Project" wizard applies to the content of the Git Repository. If chosen, the wizard will generate a <tt>.project</tt> file and point the project to a folder of the Repository's working directory. The result is a "General Project". </p>
- <p>By default, the newly generated project will point to the working directory of the Repository. By selecting some folder from the directory tree at the bottom, you can have the project generated for that folder. </p>
+ <p>This option can be helpful when there are neither <tt>.project</tt> files available nor a suitable "New Project" wizard applies to the content of the Git Repository. If chosen, the wizard will generate a <tt>.project</tt> file and point the project to a folder of the Repository's working directory. The result is a "General Project".</p>
+ <p>By default, the newly generated project will point to the working directory of the Repository. By selecting some folder from the directory tree at the bottom, you can have the project generated for that folder.</p>
<p>Click
- <b>Next</b> to open a simple dialog for entering a name and a directory for the new project:
+ <b>Next</b> to open a simple dialog for entering a name and a directory for the new project:
</p>
<p>
- <img border="0" src="images/Egit-0.9-import-projects-general-project.png"/>
+ <img border="0" src="images/Egit-0.9-import-projects-general-project.png"/>
</p>
<p>By default the suggested project name matches the name of the directory.
<br/>
</p>
<h2 id="Working_with_remote_Repositories">Working with remote Repositories</h2>
<h3 id="Cloning_Remote_Repositories">Cloning Remote Repositories</h3>
- <p>Using the Git Clone Wizard you may clone remote repositories using different transport protocols. </p>
- <p>The wizard can be started from the "Import Projects from Git" wizard using
+ <p>Using the Git Clone Wizard you may clone remote repositories using different transport protocols.</p>
+ <p>The wizard can be started from the "Import Projects from Git" wizard using
<br/>
@@ -188,33 +188,33 @@
</p>
<p>or from the "Git Repositories View" (described in
<a href="Managing_Repositories" title="EGit/User_Guide#Managing_Repositories">Managing Repositories</a>) using the
- <b>Clone a Git Repository</b> toolbar button or view menu.
+ <b>Clone a Git Repository</b> toolbar button or view menu.
</p>
<h4 id="Repository_Selection">Repository Selection</h4>
- <p>On the first page of the wizard enter the location of the remote repository: </p>
+ <p>On the first page of the wizard enter the location of the remote repository:</p>
<p>
- <img border="0" src="images/Egit-0.9-clone-wizard-url-page.png"/>
+ <img border="0" src="images/Egit-0.9-clone-wizard-url-page.png"/>
</p>
<ul>
<li>
<b>URI</b> - The complete URI of the remote repository or the path on the file system. This field is automatically synchronized with the other fields.
<br/>Note that you can use the
- <b>Local file...</b> button to browse for a local directory and that the URI field offers content assist by offering previously used values
+ <b>Local file...</b> button to browse for a local directory and that the URI field offers content assist by offering previously used values
</li>
<li>
- <b>Host</b> - The name of the remote host or empty if cloning from the file system.
+ <b>Host</b> - The name of the remote host or empty if cloning from the file system.
</li>
<li>
- <b>Repository Path</b> - Path to the remote repository or on the file system.
+ <b>Repository Path</b> - Path to the remote repository or on the file system.
</li>
<li>
- <b>Protocol</b> - One of the protocols described below.
+ <b>Protocol</b> - One of the protocols described below.
</li>
<li>
- <b>Port</b> - Port number.
+ <b>Port</b> - Port number.
</li>
<li>
- <b>User</b> - The user name used for authentication.
+ <b>User</b> - The user name used for authentication.
</li>
<li>
<b>Password</b> The password used for authentication.
@@ -223,29 +223,29 @@
<b>Store in Secure Store</b> Whether the password is saved in the Eclipse secure store.
</li>
</ul>
- <p>The following protocols are supported: </p>
+ <p>The following protocols are supported:</p>
<ul>
<li>
<b>file</b> - File system access to the repository.
</li>
<li>
<b>ftp</b> -
- <a href="http://tools.ietf.org/html/rfc959" target="egit_external">File Transfer Protocol</a>
+ <a href="http://tools.ietf.org/html/rfc959" target="egit_external">File Transfer Protocol</a>
</li>
<li>
- <b>git</b> - The most efficient built-in git protocol (default port 9418). This protocol doesn't provide authentication. Typically used for anonymous read access to the repository.
+ <b>git</b> - The most efficient built-in git protocol (default port 9418). This protocol doesn't provide authentication. Typically used for anonymous read access to the repository.
</li>
<li>
<b>http</b> -
- <a href="http://tools.ietf.org/html/rfc2616" target="egit_external">Hypertext Transfer Protocol</a> can be tunneled through firewalls.
+ <a href="http://tools.ietf.org/html/rfc2616" target="egit_external">Hypertext Transfer Protocol</a> can be tunneled through firewalls.
</li>
<li>
<b>https</b> -
- <a href="http://tools.ietf.org/html/rfc2818" target="egit_external">Hypertext Transfer Protocol Secure</a> can be tunneled through firewalls.
+ <a href="http://tools.ietf.org/html/rfc2818" target="egit_external">Hypertext Transfer Protocol Secure</a> can be tunneled through firewalls.
</li>
<li>
<b>sftp</b> -
- <a href="http://en.wikipedia.org/wiki/SSH_File_Transfer_Protocol" target="egit_external">SSH File Transfer Protocol</a>
+ <a href="http://en.wikipedia.org/wiki/SSH_File_Transfer_Protocol" target="egit_external">SSH File Transfer Protocol</a>
</li>
<li>
<b>ssh</b> - Git over
@@ -262,23 +262,23 @@
<i>password</i> fields at the bottom of the wizard page, the credentials will be transmitted as HTTP headers.
</p>
<h4 id="Branch_Selection">Branch Selection</h4>
- <p>On the next page choose which branches shall be cloned from the remote repository: </p>
+ <p>On the next page choose which branches shall be cloned from the remote repository:</p>
<p>
<img border="0" src="images/Egit-0.11-clone-wizard-branch-page.png"/>
</p>
<p>If you are not sure which branches you need, simply hit "Select All".</p>
<p>You can filter the branches by their name by typing using the text control above the list. Note, however, that branches that have been checked will always be shown in the list, i.e. they will not be filtered.</p>
<h4 id="Local_Destination">Local Destination</h4>
- <p>On the next page define where you want to store the repository on the local file system and define some initial settings. </p>
+ <p>On the next page define where you want to store the repository on the local file system and define some initial settings.</p>
<p>
- <img border="0" src="images/Egit-0.9-clone-wizard-destination-page.png"/>
+ <img border="0" src="images/Egit-0.9-clone-wizard-destination-page.png"/>
</p>
<ul>
<li>
- <b>Directory</b> - The directory which will contain the Git repository. It will be created by the wizard if it does not yet exist.
+ <b>Directory</b> - The directory which will contain the Git repository. It will be created by the wizard if it does not yet exist.
</li>
<li>
- <b>Initial branch</b> - Choose here which local branch will be created and initially checked out.
+ <b>Initial branch</b> - Choose here which local branch will be created and initially checked out.
</li>
<li>
<b>Remote name</b> - Define a name for the remote repository. The default is "origin".
@@ -297,10 +297,10 @@
</p>
<h4 id="Gerrit_Configuration">Gerrit Configuration</h4>
<p>If you clone a repository from a
- <a href="http://code.google.com/p/gerrit/" target="egit_external">Gerrit Code Review</a> server you may use this page to
+ <a href="http://code.google.com/p/gerrit/" target="egit_external">Gerrit Code Review</a> server you may use this page to
</p>
<ul>
- <li>specify the push configuration used to push changes to code review </li>
+ <li>specify the push configuration used to push changes to code review</li>
<li>configure your repository to select the
<b>Compute Change-Id for Gerrit Code Review</b> option in the Commit dialog by default
</li>
@@ -314,7 +314,7 @@
<ul>
<li>The fields in the sections
<b>Push URI</b> and
- <b>Push Configuration</b> get enabled.
+ <b>Push Configuration</b> get enabled.
</li>
<li>When you click
<b>Finish</b> the wizard sets the repository configuration parameter
@@ -337,30 +337,30 @@
</p>
<h3 id="Pushing_to_other_Repositories">Pushing to other Repositories</h3>
<h4 id="Pushing_to_upstream">Pushing to upstream</h4>
- <p>If you are working with a local branch which has a so-called "upstream configuration", the most convenient way for pushing relies on this upstream configuration. </p>
+ <p>If you are working with a local branch which has a so-called "upstream configuration", the most convenient way for pushing relies on this upstream configuration.</p>
<p>Typically local branches are created based on a remote tracking branch. Since the remote tracking branch is associated with a remote and the remote contains the information required to access the corresponding remote repository, it is possible to automatically create this upstream configuration while creating the local branch (see
- <a href="Tasks.html#Branching">Branching</a> for more information).
+ <a href="Tasks.html#Branching">Branching</a> for more information).
</p>
<p>When pushing upstream from the local branch, push requires no further parameters and hence can be performed without showing another dialog based on the stored upstream configuration.</p>
<p>In order to push upstream, right-click on a project and select
<b>Team &gt; Push to upstream</b> or right-click on a Repository in the Repositories View and click
<b>Push to upstream</b>. There is also an action available in the
<a href="Reference.html#Git_Workbench_Toolbar_and_Git_Workbench_Menu">Git Command Group</a>.
- <br/>
+ <br/>
</p>
- <p>Push will then be executed immediately after selecting the action. Once finished, a confirmation dialog will be shown displaying information about the pushed data and/or error messages: </p>
+ <p>Push will then be executed immediately after selecting the action. Once finished, a confirmation dialog will be shown displaying information about the pushed data and/or error messages:</p>
<p>
- <img border="0" src="images/Egit-0.11-PushResultDialog.png"/>
+ <img border="0" src="images/Egit-0.11-PushResultDialog.png"/>
</p>
<h5 id="Configuring_upstream_push">Configuring upstream push</h5>
<p>The upstream push can be configured using the "Configure..." button on the confirmation dialog (see above) or by right-clicking a project and selecting
- <b>Team &gt; Remote &gt; Configure push to upstream...</b>.
+ <b>Team &gt; Remote &gt; Configure push to upstream...</b>.
</p>
- <p>A configuration dialog will be shown for configuration of push URIs and corresponding branch mappings (RefSpecs): </p>
+ <p>A configuration dialog will be shown for configuration of push URIs and corresponding branch mappings (RefSpecs):</p>
<p>
- <img border="0" src="images/Egit-0.11-ConfigurePushToUpstream.png"/>
+ <img border="0" src="images/Egit-0.11-ConfigurePushToUpstream.png"/>
</p>
- <p>The dialog is divided into three main sections. In the upper part, information about the current Repository and the currently checked out branch is shown. The outer Group shows the Push Configuration for the remote that is associated with the current branch (in our case, "origin" as shown in the Group text). </p>
+ <p>The dialog is divided into three main sections. In the upper part, information about the current Repository and the currently checked out branch is shown. The outer Group shows the Push Configuration for the remote that is associated with the current branch (in our case, "origin" as shown in the Group text).</p>
<p>In this specific example, there is a warning message that there are several branches that use the remote named "origin". This means that changes in the push configuration will affect all these branches, not just the branch shown in the Branch field.</p>
<p>The URI Group contains two controls, a URI field and a Push URIs list. If the list is empty, the URI in the URI field will be used for Push, if at least one entry is in the Push URIs list, the URIs in the list will be used instead. It should be noted that if the Push URIs list is empty and the URI is changed in this dialog, the new URI will also be used for Pull, so care should be taken when doing so.</p>
<p>The RefMapping Group allows specification of one or several RefSpecs (see
@@ -373,12 +373,12 @@
<p>The buttons in the lower button bar allow you to save your changes and do the push immediately, save the changes without fetching, dry-run (push without saving the configuration), revert your changes, and Cancel.</p>
<h4 id="Direct_Push">Direct Push</h4>
<p>Alternatively, you can use
- <a href="Tasks.html#Direct_Fetch_and_Push_Support">Direct Push Support</a> on a Push Specification of a Remote.
+ <a href="Tasks.html#Direct_Fetch_and_Push_Support">Direct Push Support</a> on a Push Specification of a Remote.
</p>
<h4 id="Push_Wizard">Push Wizard</h4>
<p>The most powerful (but also most complex) way is using the Push Wizard
<br/>
- <b>Team &gt; Remote &gt; Push...</b>
+ <b>Team &gt; Remote &gt; Push...</b>
</p>
<h5 id="Push_URI">Push URI</h5>
<ul>
@@ -395,45 +395,45 @@
</p>
<h5 id="Push_Ref_Specifications">Push Ref Specifications</h5>
<p>See also
- <a href="Reference.html#Refspecs">Refspecs</a> for more explanations.
+ <a href="Reference.html#Refspecs">Refspecs</a> for more explanations.
</p>
<p>Click
<b>Next</b>
- <br/> If this is the first time you connect to this repository via ssh you will have to accept the host key of the remote repository
+ <br/> If this is the first time you connect to this repository via ssh you will have to accept the host key of the remote repository
</p>
<p>
- <img border="0" src="images/Egit-0.9-push-wizard-accept-hostkey.png"/>
+ <img border="0" src="images/Egit-0.9-push-wizard-accept-hostkey.png"/>
</p>
- <p>If your ssh key is protected by a passphrase (which is recommended) you have to enter it here </p>
+ <p>If your ssh key is protected by a passphrase (which is recommended) you have to enter it here</p>
<p>
- <img border="0" src="images/Egit-0.9-push-wizard-ssh-passphrase.png"/>
+ <img border="0" src="images/Egit-0.9-push-wizard-ssh-passphrase.png"/>
</p>
<p>Click
- <b>Add all branches spec</b>
+ <b>Add all branches spec</b>
</p>
<p>
- <img border="0" src="images/Egit-0.9-push-wizard-refspec-allbranches.png"/>
+ <img border="0" src="images/Egit-0.9-push-wizard-refspec-allbranches.png"/>
</p>
- <p>This is a convenient way to declare that you want to map your local branch names to the same branch names on the upstream repository you want to push changes to. </p>
+ <p>This is a convenient way to declare that you want to map your local branch names to the same branch names on the upstream repository you want to push changes to.</p>
<p>Click
- <b>Add all tags spec</b> to map local tags 1:1 to tags in the repository you want to push to.
+ <b>Add all tags spec</b> to map local tags 1:1 to tags in the repository you want to push to.
</p>
- <p>If you want to map local branches to those in the upstream repository in a different way you may define more detailed mapping specifications in the following way </p>
+ <p>If you want to map local branches to those in the upstream repository in a different way you may define more detailed mapping specifications in the following way</p>
<ul>
- <li>enter source and destination ref or select already existing branches from the drop-down lists </li>
+ <li>enter source and destination ref or select already existing branches from the drop-down lists</li>
<li>click
<b>Add spec</b>
</li>
</ul>
<p>This will transfer the newly defined mapping to the list
- <b>Specifications for push</b>
+ <b>Specifications for push</b>
</p>
<p>
- <b>Other common push specs:</b>
+ <b>Other common push specs:</b>
</p>
<ul>
<li>You may e.g. map <tt>refs/heads/*</tt> to <tt>refs/heads/joe/*</tt> if you want to name the branches you push to according to your nickname
- <i>joe</i>. This is useful if multiple users want to publish their local branches on personal branches in a jointly used public repository.
+ <i>joe</i>. This is useful if multiple users want to publish their local branches on personal branches in a jointly used public repository.
</li>
<li>Another usual mapping is to map the source ref <tt>HEAD</tt> to the destination <tt>refs/heads/master</tt>. This means you want to map your current <tt>HEAD</tt> (which might currently point e.g. to any local topic branch) to the upstream master branch.</li>
</ul>
@@ -441,31 +441,31 @@
<p>To delete a ref in the destination repository select the ref to be deleted from the drop-down list
<b>Remote ref to delete</b> and click
<b>Add spec</b>. This will create a corresponding entry in the
- <b>Specifications for push</b> list. Alternatively you may type in the specification for the refs to be deleted, this may also use wildcards. Pushing Delete Ref Specifications will delete the matching Refs in the destination repository.
+ <b>Specifications for push</b> list. Alternatively you may type in the specification for the refs to be deleted, this may also use wildcards. Pushing Delete Ref Specifications will delete the matching Refs in the destination repository.
</p>
<p>
- <img border="0" src="images/Egit-0.9-push-wizard-delete-refspec.png"/>
+ <img border="0" src="images/Egit-0.9-push-wizard-delete-refspec.png"/>
</p>
<h5 id="Conflicting_Push_Ref_Specifications">Conflicting Push Ref Specifications</h5>
<p>If you add multiple conflicting Push Ref Specifications they will be marked in red, solve this by removing or editing the conflicting specs. It is also possible to edit the specs in-place in the list
- <b>Specifications for push</b>
+ <b>Specifications for push</b>
</p>
<p>
- <img border="0" src="images/Egit-0.9-push-wizard-refspec-conflict.png"/>
+ <img border="0" src="images/Egit-0.9-push-wizard-refspec-conflict.png"/>
</p>
<h5 id="Push_Confirmation">Push Confirmation</h5>
<p>Click
- <b>Next</b>
+ <b>Next</b>
</p>
<p>This will open the Push Confirmation dialog showing a preview which changes will be pushed to the destination repository. If this does not match your expectation click
- <b>Back</b> and correct your push specs accordingly.
+ <b>Back</b> and correct your push specs accordingly.
</p>
<ul>
<li>For ref updates the range of commits to be pushed will be shown in the format <tt>
<b>&lt;SHA1-from&gt;..&lt;SHA1-to&gt;</b></tt> e.g. <tt>
<b>d97f5a2e..adfdbfd2</b></tt> means all commits between <tt>
<b>d97f5a2e</b></tt> and <tt>
- <b>adfdbfd2</b></tt> will be pushed.
+ <b>adfdbfd2</b></tt> will be pushed.
</li>
<li>For refs which do not yet exist in the destination repository <tt>
<b>
@@ -473,7 +473,7 @@
</b></tt> or <tt>
<b>
<a href="new">tag</a>
- </b></tt> is displayed.
+ </b></tt> is displayed.
</li>
<li>For refs which will be delete <tt>
<b>
@@ -482,11 +482,11 @@
</li>
</ul>
<p>
- <img border="0" src="images/Egit-0.9-push-wizard-confirm-push.png"/>
+ <img border="0" src="images/Egit-0.9-push-wizard-confirm-push.png"/>
</p>
<ul>
<li>Select the
- <b>Push only if remote refs don't change in the mean time</b> check box if you want to be sure that what you see in this preview is also what you get when pushing these changes out.
+ <b>Push only if remote refs don't change in the mean time</b> check box if you want to be sure that what you see in this preview is also what you get when pushing these changes out.
</li>
<li>Select the
<b>Show final report dialog only when it differs from this confirmation report</b> check box if you only want to get a report after executing the push if the result differs from this preview.
@@ -494,13 +494,13 @@
</ul>
<h5 id="Push_Result_Report">Push Result Report</h5>
<p>Click
- <b>Finish</b>
+ <b>Finish</b>
</p>
- <p>Depending on the options you have chosen a push result report dialog is shown </p>
+ <p>Depending on the options you have chosen a push result report dialog is shown</p>
<p>
- <img border="0" src="images/Egit-0.9-push-wizard-push-result.png"/>
+ <img border="0" src="images/Egit-0.9-push-wizard-push-result.png"/>
</p>
- <p>In the box at the bottom the push confirmation message from the remote server is displayed. In case of any errors you will find the error message from the remote server here. To see the message for a given list entry simply select it in the list. </p>
+ <p>In the box at the bottom the push confirmation message from the remote server is displayed. In case of any errors you will find the error message from the remote server here. To see the message for a given list entry simply select it in the list.</p>
<p>Click
<b>Ok</b> to close the dialog.
<br/>
@@ -524,13 +524,13 @@
</p>
<h5 id="Configuring_upstream_fetch">Configuring upstream fetch</h5>
<p>The upstream fetch can be configured using the "Configure..." button on the confirmation dialog (see above) or by clicking
- <b>Team &gt; Remote &gt; Configure fetch from upstream...</b> on a project.
+ <b>Team &gt; Remote &gt; Configure fetch from upstream...</b> on a project.
</p>
<p>A configuration dialog will be shown for configuring the fetch URI and branch mappings (RefSpecs):</p>
<p>
<img border="0" src="images/Egit-0.11-ConfigureFetchFromUpstream.png"/>
</p>
- <p>The dialog is divided into three main sections. In the upper part, information about the current Repository and the currently checked out branch is shown. The outer Group shows the Fetch Configuration for the remote that is associated with the current branch (in our case, "origin" as shown in the Group text). </p>
+ <p>The dialog is divided into three main sections. In the upper part, information about the current Repository and the currently checked out branch is shown. The outer Group shows the Fetch Configuration for the remote that is associated with the current branch (in our case, "origin" as shown in the Group text).</p>
<p>The URI field can be used to add/change the fetch URI.</p>
<p>The RefMapping Group allows specification of one or several RefSpecs (see
<a href="Reference.html#Refspecs">Refspecs</a>) for Fetch.
@@ -575,31 +575,31 @@
<p>Click
<b>Next</b>
<br/> Click
- <b>Add all branches spec</b>
+ <b>Add all branches spec</b>
</p>
<p>
- <img border="0" src="images/Egit-0.9-fetch-wizard-refspec.png"/>
+ <img border="0" src="images/Egit-0.9-fetch-wizard-refspec.png"/>
</p>
- <p>This is a convenient way to declare that you want to map the branch names in the upstream repository you want to fetch changes from 1:1 to the same local branch names. </p>
+ <p>This is a convenient way to declare that you want to map the branch names in the upstream repository you want to fetch changes from 1:1 to the same local branch names.</p>
<ul>
<li>Click in the edit field
<b>Destination Ref</b> and replace the path segment
- <i>choose_remote_name</i> with a symbolic name for the upstream repository you are going to fetch from.
+ <i>choose_remote_name</i> with a symbolic name for the upstream repository you are going to fetch from.
</li>
<li>The default remote name for the repository your repository has been cloned from is <tt>
<b>origin</b></tt>. The master of this remote maps by default from <tt>
<b>refs/heads/master</b></tt> to <tt>
- <b>refs/remotes/origin/master</b></tt>.
+ <b>refs/remotes/origin/master</b></tt>.
</li>
<li>If you e.g. want to additionally track branches from Joe's repository in your local repository you would map the branch in his repository <tt>
<b>refs/heads/*</b></tt> to the following tracking branches <tt>
- <b>refs/remotes/joe/*</b></tt>.
+ <b>refs/remotes/joe/*</b></tt>.
</li>
<li>Deselect
- <b>Force Update</b> if you want to allow fast-forward updates only, select this option if you also want to allow non-fast-forward changes.
+ <b>Force Update</b> if you want to allow fast-forward updates only, select this option if you also want to allow non-fast-forward changes.
</li>
<li>Click
- <b>Force Update all Refs</b> to set the force update option on all specs
+ <b>Force Update all Refs</b> to set the force update option on all specs
</li>
<li>Click
<b>Remove all specs</b> to remove all specs from the list
@@ -611,9 +611,9 @@
<b>Add all tags spec</b> to map tags tags in the repository you want to fetch from 1:1 to local tags.
</li>
</ul>
- <p>If you want to map branches or tags in the upstream repository to local branches in a different way you may define more detailed mapping specifications in the following way </p>
+ <p>If you want to map branches or tags in the upstream repository to local branches in a different way you may define more detailed mapping specifications in the following way</p>
<ul>
- <li>enter source (ref in source repository) and destination ref (tracking branch or tag in local repository) or select already existing branches from the drop-down lists </li>
+ <li>enter source (ref in source repository) and destination ref (tracking branch or tag in local repository) or select already existing branches from the drop-down lists</li>
<li>click
<b>Add spec</b>
</li>
@@ -634,7 +634,7 @@
<b>&lt;SHA1-from&gt;..&lt;SHA1-to&gt;</b></tt> e.g. <tt>
<b>d97f5a2e..adfdbfd2</b></tt> means all commits between <tt>
<b>d97f5a2e</b></tt> and <tt>
- <b>adfdbfd2</b></tt> have been fetched.
+ <b>adfdbfd2</b></tt> have been fetched.
</li>
<li>For refs which didn't exist before in the local repository <tt>
<b>&#91;new branch&#93;</b></tt> or <tt>
@@ -649,19 +649,20 @@
</p>
<h3 id="Pulling_New_Changes_from_Upstream_Branch">Pulling New Changes from Upstream Branch</h3>
<ul>
- <li>Click
- <b>Team &gt; Pull</b> to pull new changes from the upstream branch your local branch is tracking. This also works if resources are selected from more than one repository.
+ <li>Right-click on a project in the Package Explorer and select
+ <b>Team &gt; Pull</b> or right-click on a repository in the Git Repositories view and select
+ <b>Pull</b> to pull new changes from the upstream branch your local branch is tracking. This also works if resources are selected from more than one repository.
</li>
<li>Whenever you create a local branch based on a remote tracking branch EGit can configure a tracking relationship so that subsequent pulls will fetch and then merge or rebase (depending on the configuration of this tracking relationship) the changes from the tracked upstream branch; see
<a href="Tasks.html#Branching">Branching</a> for details.
</li>
</ul>
- <p>Ad-hoc selection of the upstream branch to pull from is not yet supported by EGit. </p>
- <p>Available alternatives include: </p>
+ <p>Ad-hoc selection of the upstream branch to pull from is not yet supported by EGit.</p>
+ <p>Available alternatives include:</p>
<ul>
<li>run
<b>git pull</b> from outside eclipse (but
- <a href="http://marc.info/?l=git&amp;m=123924844219075" target="egit_external">beware on Windows</a>)
+ <a href="http://marc.info/?l=git&amp;m=123924844219075" target="egit_external">beware on Windows</a>)
</li>
<li>if you did no local change or want to discard your local changes, use
<b>Team &gt; Reset...</b>
@@ -673,20 +674,20 @@
</p>
<h3 id="Fetching_a_change_from_a_Gerrit_Code_Review_Server">Fetching a change from a Gerrit Code Review Server</h3>
<p>If you are working with Gerrit (
- <a href="http://code.google.com/p/gerrit/" target="egit_external">http://code.google.com/p/gerrit/</a>), EGit allows you to conveniently fetch a change into your local Repository for inspection and/or modification.
+ <a href="http://code.google.com/p/gerrit/" target="egit_external">http://code.google.com/p/gerrit/</a>), EGit allows you to conveniently fetch a change into your local Repository for inspection and/or modification.
</p>
<p>Right-click on a project and select
<b>Team &gt; Remote &gt; Fetch from Gerrit...</b> or right-click on a Repository node in the Repositories View and select
- <b>Fetch from Gerrit...</b>
+ <b>Fetch from Gerrit...</b>
</p>
- <p>A dialog will appear that lets you select or enter a URI and a change as well as some additional options: </p>
+ <p>A dialog will appear that lets you select or enter a URI and a change as well as some additional options:</p>
<p>
- <img border="0" src="images/Egit-0.11-fetchChangeFromGerritDialog.png"/>
+ <img border="0" src="images/Egit-0.11-fetchChangeFromGerritDialog.png"/>
</p>
<ul>
- <li>In the URI combo, select or enter the URI that points to your Gerrit instance; the combo will be pre-filled with all URIs defined in any remote of your current Repository; in addition you can type any URI into this field </li>
+ <li>In the URI combo, select or enter the URI that points to your Gerrit instance; the combo will be pre-filled with all URIs defined in any remote of your current Repository; in addition you can type any URI into this field</li>
<li>In the Change field, you must enter the full name of a change; you can either take this value from the Gerrit Web UI, use the content assist described below, or build the name using the following pattern:
- <br/>"refs/changes/" + (last two digits from change number) + / + (change number) + / + (revision number)
+ <br/>"refs/changes/" + (last two digits from change number) + / + (change number) + / + (revision number)
</li>
<li>In the "Actions to perform after fetch" you can decide what to do after the change has been fetched; you can either create and checkout a branch pointing to the change, create and checkout a tag pointing to the change, or simply checkout the change (thus making HEAD detached); the last option does nothing after fetch, but you will be able to find the commit pertaining to the change at FETCH_HEAD (go to the Repositories View and find FETCH_HEAD under the References node of your Repository, see
<a href="Tasks.html#Inspecting_References">Inspecting References </a>).
@@ -694,31 +695,31 @@
<br/>Since deletion of tags is currently not supported in EGit, we suggest to use local branches rather than tags for the time being. Since the Repositories view allows to group branches hierarchically using "/" as hierarchy separator, the suggested names can come in very handy when dealing with large numbers of changes.
</li>
</ul>
- <p>Instead of the tedious copy-paste or manual entering of the change ID, the dialog also offers a content assist for the change. Simply press "CTRL-SPACE" to activate this (consult the tooltip that appears when hovering over the little bulb decorator near the Change field). The Gerrit Server will be contacted and all available changes will be fetched and shown in a content assist dialog: </p>
+ <p>Instead of the tedious copy-paste or manual entering of the change ID, the dialog also offers a content assist for the change. Simply press "Ctrl+Space" to activate this (consult the tooltip that appears when hovering over the little bulb decorator near the Change field). The Gerrit Server will be contacted and all available changes will be fetched and shown in a content assist dialog:</p>
<p>
- <img border="0" src="images/Egit-0.11-ContentAssistGerritChange.png"/>
+ <img border="0" src="images/Egit-0.11-ContentAssistGerritChange.png"/>
</p>
<p>The list will be filtered with your input in the change field. After selecting the change in the content assist, the Change field will be filled with the correct information.</p>
<h2 id="Inspecting_the_state_of_the_Repository">Inspecting the state of the Repository</h2>
<h3 id="Label_Decorations">Label Decorations</h3>
- <p>Label decorations show Git specific information on resources under Git version control. They appear in all views showing model objects, like Package Explorer, Project Explorer, Navigator, Hierarchy View. </p>
+ <p>Label decorations show Git specific information on resources under Git version control. They appear in all views showing model objects, like Package Explorer, Project Explorer, Navigator, Hierarchy View.</p>
<p>The Git label decorations can be switched on globally in the Preference Menu (
<b>Window &gt; Preferences</b>) under
- <b>General &gt; Appearance &gt; Label Decorations</b>.
+ <b>General &gt; Appearance &gt; Label Decorations</b>.
</p>
<p>More detailed settings can be done in the Preferences under
- <b>Team &gt; Git &gt; Label Decorations</b>.
+ <b>Team &gt; Git &gt; Label Decorations</b>.
</p>
- <p>There are two different types of label decorations: text decorations and icon decorations. </p>
+ <p>There are two different types of label decorations: text decorations and icon decorations.</p>
<h4 id="Text_Decorations">Text Decorations</h4>
<p>Text decorations appear on the left or right side of the text label. They can be configured on the Preferences dialog under
<b>Team &gt; Git &gt; Label Decorations</b> on the tab
<b>Text Decorations</b>. For example, the default for a dirty resource is a <tt>
- <b>&gt;</b></tt> on the left side of its name.
+ <b>&gt;</b></tt> on the left side of its name.
</p>
- <p>These are the default settings: </p>
+ <p>These are the default settings:</p>
<p>
- <img border="0" src="images/01-TextDecorations.png"/>
+ <img border="0" src="images/01-TextDecorations.png"/>
</p>
<p>For files and folders there are the variables <tt>"name"</tt>, <tt>"dirty"</tt> and <tt>"staged"</tt>. <tt>"Dirty"</tt> and <tt>"staged"</tt> are flags; if they are true, the text after the colon is displayed.</p>
<p>For projects there are the additional variables <tt>"repository"</tt> and <tt>"branch"</tt>. The <tt>"repository"</tt> variable displays the name of the repository.</p>
@@ -734,43 +735,43 @@
<h4 id="Icon_Decorations">Icon Decorations</h4>
<p>Icon decorations appear on the lower right corner of the icon displayed in front of the label. They can be configured on the Preferences dialog under
<b>Team &gt; Git &gt; Label Decorations</b> on the tab
- <b>Icon Decorations</b>.
+ <b>Icon Decorations</b>.
</p>
- <p>These are the default decorations: </p>
+ <p>These are the default decorations:</p>
<p>
- <img border="0" src="images/02-IconDecorations.png"/>
+ <img border="0" src="images/02-IconDecorations.png"/>
</p>
<ul>
<li>
- <b>dirty (folder)</b> - At least one file below the folder is dirty; that means that it has changes in the working tree that are neither in the index nor in the repository.
+ <b>dirty (folder)</b> - At least one file below the folder is dirty; that means that it has changes in the working tree that are neither in the index nor in the repository.
</li>
<li>
- <b>tracked</b> - The resource is known to the Git repository and hence under version control.
+ <b>tracked</b> - The resource is known to the Git repository and hence under version control.
</li>
<li>
- <b>untracked</b> - The resource is not known to the Git repository and will not be version controlled until it is explicitly added.
+ <b>untracked</b> - The resource is not known to the Git repository and will not be version controlled until it is explicitly added.
</li>
<li>
<b>ignored</b> - The resource is ignored by the Git team provider. The preference settings under
- <b>Team &gt; Ignored Resources</b>, "derived" flag and settings from <tt>.gitignore</tt> files are taken into account.
+ <b>Team &gt; Ignored Resources</b>, "derived" flag and settings from <tt>.gitignore</tt> files are taken into account.
</li>
<li>
- <b>dirty</b> - The resource has changes in the working tree that are neither in the index nor in the repository.
+ <b>dirty</b> - The resource has changes in the working tree that are neither in the index nor in the repository.
</li>
<li>
- <b>staged</b> - The resource has changes which have been added to the index. Note that adding changes to the index is currently possible only in the commit dialog via the context menu of a resource.
+ <b>staged</b> - The resource has changes which have been added to the index. Note that adding changes to the index is currently possible only in the commit dialog via the context menu of a resource.
</li>
<li>
- <b>partially-staged</b> - The resource has changes which are added to the index and additional changes in the working tree that neither reached the index nor have been committed to the repository.
+ <b>partially-staged</b> - The resource has changes which are added to the index and additional changes in the working tree that neither reached the index nor have been committed to the repository.
</li>
<li>
- <b>added</b> - The resource has not yet reached any commit in the repository but has been freshly added to the Git repository in order to be tracked in future.
+ <b>added</b> - The resource has not yet reached any commit in the repository but has been freshly added to the Git repository in order to be tracked in future.
</li>
<li>
- <b>removed</b> - The resource is staged for removal from the Git repository.
+ <b>removed</b> - The resource is staged for removal from the Git repository.
</li>
<li>
- <b>conflict</b> - A merge conflict exists for the file.
+ <b>conflict</b> - A merge conflict exists for the file.
</li>
<li>
<b>assume-valid</b> - The resource has the "assume unchanged" flag. This means that Git stops checking the working tree files for possible modifications, so you need to manually unset the bit to tell Git when you change the working tree file. Also see
@@ -799,7 +800,7 @@
</p>
<h4 id="Compare_working_tree_with_last_commit">Compare working tree with last commit</h4>
<p>The difference between a resource in the current working directory and in the last commit in the current branch can be viewed from the context menu
- <b>Compare With &gt; HEAD revision</b>. This feature is also available in the Commit dialog. Double clicking on an entry in the Commit dialog opens a compare dialog.
+ <b>Compare With &gt; HEAD revision</b>. This feature is also available in the Commit dialog. Double clicking on an entry in the Commit dialog opens a compare dialog.
</p>
<h4 id="Comparing_Working_Tree_with_Index">Comparing Working Tree with Index</h4>
<p>The differences between the current working tree and the index (based on the currently selected resource) can be viewed from the context menu
@@ -807,52 +808,52 @@
</p>
<h4 id="Comparing_Working_Tree_with_a_branch.2C_a_tag_or_a_reference">Comparing Working Tree with a branch, a tag or a reference</h4>
<ul>
- <li>Select a resource </li>
+ <li>Select a resource</li>
<li>right-click
- <b>Compare With &gt; Branch, Tag, or Reference...</b>
+ <b>Compare With &gt; Branch, Tag, or Reference...</b>
</li>
<li>select a branch, tag or reference</li>
</ul>
<h4 id="Comparing_Working_Tree_with_Any_Commit">Comparing Working Tree with Any Commit</h4>
<h5 id="From_the_project_explorer:">From the project explorer:</h5>
<ul>
- <li>Select a resource </li>
+ <li>Select a resource</li>
<li>right-click
- <b>Compare With &gt; Commit...</b>
+ <b>Compare With &gt; Commit...</b>
</li>
<li>select a commit from the commit graph</li>
</ul>
<h5 id="From_the_history_view_.28files_only.29:">From the history view (files only):</h5>
<ul>
- <li>Select a file in the package explorer </li>
+ <li>Select a file in the package explorer</li>
<li>right-click
<b>Team &gt; Show in History</b> or
- <b>Compare With &gt; History...</b>
+ <b>Compare With &gt; History...</b>
</li>
- <li>in the commit graph select a commit </li>
+ <li>in the commit graph select a commit</li>
<li>from the context menu select
- <b>Compare with working tree</b>
+ <b>Compare with working tree</b>
</li>
<li>this will open a compare dialog showing the changes between the selected commit and the current working tree</li>
</ul>
<h4 id="Comparing_Two_Commits">Comparing Two Commits</h4>
<ul>
- <li>Select a resource in the Package Explorer </li>
+ <li>Select a resource in the Package Explorer</li>
<li>click
<b>Team &gt; Show in History</b> or
- <b>Compare With &gt; History...</b> (the latter for files only)
+ <b>Compare With &gt; History...</b> (the latter for files only)
</li>
- <li>in the commit graph select two commits </li>
+ <li>in the commit graph select two commits</li>
<li>right-click
- <b>Compare with each other</b>
+ <b>Compare with each other</b>
</li>
- <li>this will open a compare dialog showing the changes between the two selected commits </li>
+ <li>this will open a compare dialog showing the changes between the two selected commits</li>
<li>you can also open a Git Tree Compare view by right-clicking
<b>Compare with each other in Tree</b>
</li>
</ul>
<h4 id="Comparing_Index_with_HEAD_or_Any_Other_Commit">Comparing Index with HEAD or Any Other Commit</h4>
- <p>This feature is not implemented yet. </p>
+ <p>This feature is not implemented yet.</p>
<p>
<br/>
</p>
@@ -860,7 +861,7 @@
<p>The difference between the working tree (including not committed changes) and a branch or tag can be viewed by clicking the dynamic menu
<b>Team &gt; Synchronize</b> on a project and selecting the
<i>Ref</i> you want to synchronize your working tree against. If the Git repository contains multiple Eclipse projects it is sufficient to select one project, the
- <b>Synchronization View</b> will also include all other projects.
+ <b>Synchronization View</b> will also include all other projects.
</p>
<p>
<img border="0" src="images/Egit-1.0-synchronize-dynamic.png"/>
@@ -874,31 +875,31 @@
<p>When clicking "Include local uncommited changes in comparison" also local, not yet staged changes and the already staged changes will be shown in comparison.</p>
<p>It is also possible to compare multiple repositories at once. In this case in the Synchronize Wizard select for each repository the Ref you want to compare against.</p>
<h3 id="Quickdiff">Quickdiff</h3>
- <p>Instead of using a compare editor you can enable quick diff support and see the changes within the text editor.
+ <p>Instead of using a compare editor you can enable quick diff support and see the changes within the text editor.
<br/>This feature can be enabled via the
- <b>General &gt; Editors &gt; Text Editors &gt; Quick Diff</b> preference page:
+ <b>General &gt; Editors &gt; Text Editors &gt; Quick Diff</b> preference page:
</p>
<p>
- <img border="0" src="images/04-QuickDiffPreferences.png"/>
+ <img border="0" src="images/04-QuickDiffPreferences.png"/>
</p>
- <p>The difference annotation will then be displayed on the left hand side of the editor: </p>
+ <p>The difference annotation will then be displayed on the left hand side of the editor:</p>
<p>
- <img border="0" src="images/05-QuickDiffInEditor.png"/>
+ <img border="0" src="images/05-QuickDiffInEditor.png"/>
</p>
- <p>If you move your mouse over the annotation you see the content of the version you are comparing to: </p>
+ <p>If you move your mouse over the annotation you see the content of the version you are comparing to:</p>
<p>
- <img border="0" src="images/06-QuickDiffInEditorPopup.png"/>
+ <img border="0" src="images/06-QuickDiffInEditorPopup.png"/>
</p>
<p>Per default, the comparison is against the HEAD. You can determine the version you are comparing to, the so-called quickdiff baseline, from the context menu of a commit in the history view (
- <b>Show in &gt; History</b>). There are three menu entries:
+ <b>Show in &gt; History</b>). There are three menu entries:
</p>
<ul>
<li>
<b>Quick Diff -&gt; Reset baseline to first parent of HEAD</b> - Compare against the first commit before HEAD.
</li>
<li>
- <b>Quick Diff -&gt; Reset baseline to HEAD</b> - Compare against HEAD.
+ <b>Quick Diff -&gt; Reset baseline to HEAD</b> - Compare against HEAD.
</li>
<li>
<b>Quick Diff -&gt; Set as baseline</b> - Compare against the selected commit
@@ -908,12 +909,12 @@
<br/>
</p>
<h3 id="Inspecting_Commits">Inspecting Commits</h3>
- <p>To inspect a given commit </p>
+ <p>To inspect a given commit</p>
<ul>
<li>from the context menu in package explorer select
- <b>Team &gt; Show in History</b>
+ <b>Team &gt; Show in History</b>
</li>
- <li>select the commit you want to inspect </li>
+ <li>select the commit you want to inspect</li>
</ul>
<p>
<img border="0" src="images/EGit-0.7-ViewDiffInResourceHistory.png"/>
@@ -923,25 +924,25 @@
<h4 id="Showing_the_contents_of_a_Commit">Showing the contents of a Commit</h4>
<p>The behavior of a double click on a file in the lower right pane depends on the state of the compare mode toggle button. If it's on, a compare editor will be opened which compares the file content in the current commit with the content in the ancestor commit; if it's off, an editor will be opened showing the file content in the current commit.</p>
<h2 id="Committing_Changes">Committing Changes</h2>
- <p>Modifications to a project under git version control are persisted in the git history through commits. Starting from the state checked out from the git repository modify your project until you have reached a state you are satisfied with and then commit all these changes into the repository as one single commit. Each commit represents a well defined snapshot of all the files stored in the repository. </p>
+ <p>Modifications to a project under git version control are persisted in the git history through commits. Starting from the state checked out from the git repository modify your project until you have reached a state you are satisfied with and then commit all these changes into the repository as one single commit. Each commit represents a well defined snapshot of all the files stored in the repository.</p>
<h3 id="Modifying_the_content">Modifying the content</h3>
<p>To modify a project which is already shared with Git modify or delete files either within Eclipse or directly in the file system. There is no need to tell Git in advance about these operations. New files which should be version-controlled have to be explicitly put under Git version control :</p>
<ul>
<li>click
- <b>Team &gt; Add</b> in the file's context menu
+ <b>Team &gt; Add</b> in the file's context menu
</li>
</ul>
<p>Alternatively you may display untracked files in the Commit dialog and check the
- <b>Show untracked Files</b> checkbox to select them for inclusion into the commit.
+ <b>Show untracked Files</b> checkbox to select them for inclusion into the commit.
</p>
- <p>Label decorators e.g. in the Package Explorer View show </p>
+ <p>Label decorators e.g. in the Package Explorer View show</p>
<ul>
<li>untracked files which are not yet under git version control (marked with "?")</li>
- <li>files which have been added (marked with "+") </li>
+ <li>files which have been added (marked with "+")</li>
<li>modified files (marked with "&gt;" in front of the filename)</li>
</ul>
<p>For details see
- <a href="Tasks.html#Label_Decorations">Label Decorations</a>.
+ <a href="Tasks.html#Label_Decorations">Label Decorations</a>.
</p>
<p>Here is an example in the Package Explorer for</p>
<ul>
@@ -949,31 +950,36 @@
<li>a file modified in the working tree but not yet staged for the next commit</li>
<li>a modified file which modifications have been staged for the next commit</li>
<li>a file which has been newly staged for first-time inclusion with the next commit</li>
- <li>a file which is not under git version control </li>
+ <li>a file which is not under git version control</li>
</ul>
<p>
<img border="0" src="images/Egit-0.9-label-decorators.png"/>
</p>
<h3 id="Committing">Committing</h3>
<p>To commit a change click
- <b>Team &gt; Commit...</b> in the context menu of a resource in the project.
+ <b>Team &gt; Commit...</b> in the context menu of a resource in the project.
</p>
- <p>Git tracks all changes made to the entire repository capturing the modifications of all version-controlled files in that repository not regarding if these files reside in the same Eclipse project or not. </p>
+ <p>Git tracks all changes made to the entire repository capturing the modifications of all version-controlled files in that repository not regarding if these files reside in the same Eclipse project or not.</p>
<p>Once you have triggered the commit the
- <b>Commit Dialog</b> will pop-up
+ <b>Commit Dialog</b> will pop-up
</p>
<p>
- <img border="0" src="images/Egit-0.9-commit-dialog.png"/>
+ <img border="0" src="images/Egit-0.9-commit-dialog.png"/>
</p>
<h4 id="Commit_Message">Commit Message</h4>
- <p>In the Commit Dialog you specify the commit message describing the change. </p>
- <p>It is good practice to start the message with a short first line summarizing the change followed by a blank line and then the message body. In order to ensure that also git command line tools can format these messages nicely the lines shouldn't be formatted too wide (this is indicated by a grey vertical line). The commit message text is checked for errors by the Eclipse spell checker. The spell checker can be configured via the Eclipse
- <b>Preferences &gt; General &gt; Editors &gt; Text Editors &gt; Spelling</b>. Click
- <b>Ctrl - 1</b> to open quick fixes which may help to fix the spelling errors.
- </p>
+ <p>In the Commit Dialog you specify the commit message describing the change.</p>
+ <p>It is good practice to start the message with a short first line summarizing the change followed by a blank line and then the message body. In order to ensure that also git command line tools can format these messages nicely the lines shouldn't be formatted too wide (this is indicated by a grey vertical line).</p>
<p>
<img border="0" src="images/Egit-0.9-commit-dialog-spell-quickfix.png"/>
</p>
+ <p>The commit message text is checked for errors by the Eclipse spell checker. The spell checker can be configured via the Eclipse
+ <b>Preferences &gt; General &gt; Editors &gt; Text Editors &gt; Spelling</b>. Press
+ <b>Ctrl+1</b> to open quick fixes which may help to fix the spelling errors.
+ </p>
+ <p>
+ <img border="0" src="images/Egit-1.2-commit-dialog-path-assist.png"/>
+ </p>
+ <p>The commit message editor supports content assist for file names shown in Files section of the commit dialog, which can be activated pressing Ctrl-Space.</p>
<p>
<b>Footer Tags</b>
@@ -1003,38 +1009,38 @@ Signed-off-by: William Shakespeare &lt;will.from@the.past&gt;
<b>Team &gt; Git &gt; Commit Dialog</b> is set the corresponding checkbox in the Commit Dialog is always preselected.
</li>
</ul>
- <p>Additionally this dialog controls which of the changes will be included in the commit. If you clear the checkbox in front of a file, the changes to this file will not be included in the commit. The local file in your eclipse workspace will still contain the modifications giving you the chance to commit these changes with a subsequent commit. This feature is often used to separate modifications done to a set of files into different commits. </p>
+ <p>Additionally this dialog controls which of the changes will be included in the commit. If you clear the checkbox in front of a file, the changes to this file will not be included in the commit. The local file in your eclipse workspace will still contain the modifications giving you the chance to commit these changes with a subsequent commit. This feature is often used to separate modifications done to a set of files into different commits.</p>
<p>
- <b>One example:</b> Imagine since the last commit you have fixed a bug in A.java and you have added a new method to B.java. These two modifications are logically independent from each other hence you may want to commit them in two independant commits. In this case you initate the commit, deselect B.java from the set of committed files and specify a commit message describing only the bugfix in A.java. After a succesfull first commit you just call commit again and the upcoming dialog will present you the remaining changes in B.java. Now you specify a commit message describing the addition of the method and finish the second commit.
+ <b>One example:</b> Imagine since the last commit you have fixed a bug in A.java and you have added a new method to B.java. These two modifications are logically independent from each other hence you may want to commit them in two independant commits. In this case you initate the commit, deselect B.java from the set of committed files and specify a commit message describing only the bugfix in A.java. After a succesfull first commit you just call commit again and the upcoming dialog will present you the remaining changes in B.java. Now you specify a commit message describing the addition of the method and finish the second commit.
</p>
<p>New files you added to the project which have not been explicitly added to version control (see "Modifying the content") will be listed in the commit dialog if you select the checkbox "Show untracked Files". If you select the checkbox in front of these files in the list they will be added to the repository and committed once you press the commit button. Files which are excluded by the team ignore list or a <tt>.gitignore</tt> file or which are derived (e.g. the bin folder in java projects) will not be shown here. If you have no other changes in your repository than such untracked files the checkbox
<b>Show untracked Files</b> is selected by default.
</p>
<h4 id="Amending_Commits">Amending Commits</h4>
- <p>If you recognize that you missed something when committing a change you may fix this : open the commit dialog again and specify that the current commit shall "amend" the previous commit in the current branch. The new commit will then replace the previous one. This feature is often used to correct wrong commits before they are published to other repositories. </p>
+ <p>If you recognize that you missed something when committing a change you may fix this : open the commit dialog again and specify that the current commit shall "amend" the previous commit in the current branch. The new commit will then replace the previous one. This feature is often used to correct wrong commits before they are published to other repositories.</p>
<p>
<b>Note:</b> do not amend commits if they have already been published to a shared repository since this may disturb others if they already based their changes on the published change.
</p>
<p>
- <b>Amend example:</b>
+ <b>Amend example:</b>
- <br/>Imagine you have committed a change to a file containing a typo
+ <br/>Imagine you have committed a change to a file containing a typo
</p>
<p>
- <img border="0" src="images/EGit-Typo.png"/>
+ <img border="0" src="images/EGit-Typo.png"/>
</p>
- <p>After committing the change you detect a typo. In order to correct this typo and the corresponding commit you just fix the typo in the source file </p>
+ <p>After committing the change you detect a typo. In order to correct this typo and the corresponding commit you just fix the typo in the source file</p>
<p>
- <img border="0" src="images/EGit-Corrected.png"/>
+ <img border="0" src="images/EGit-Corrected.png"/>
</p>
<p>then open the Commit Dialog again and select the option
- <b>Amend previous commit</b>.
+ <b>Amend previous commit</b>.
</p>
<p>
- <img border="0" src="images/Egit-0.9-commit-dialog-amend.png"/>
+ <img border="0" src="images/Egit-0.9-commit-dialog-amend.png"/>
</p>
- <p>The commit message of your previous commit (the one you want to replace) is filled into the "Commit Message" field. This gives you the chance not only to correct errors in the content of the version-controlled files but to also correct errors (e.g. typos) in the commit message describing your change. </p>
- <p>As an alternative to amending you could just commit the corrected version as a subsequent commit. But the first commit containing the typo is of no use to anybody and in order not to clutter the history of your project with unneeded commits you may decide to amend the commit. </p>
+ <p>The commit message of your previous commit (the one you want to replace) is filled into the "Commit Message" field. This gives you the chance not only to correct errors in the content of the version-controlled files but to also correct errors (e.g. typos) in the commit message describing your change.</p>
+ <p>As an alternative to amending you could just commit the corrected version as a subsequent commit. But the first commit containing the typo is of no use to anybody and in order not to clutter the history of your project with unneeded commits you may decide to amend the commit.</p>
<p>Be aware that amending commits which are already published to other repositories may cause trouble. Once you have pushed a commit to a remote repository or your local repository was cloned by somebody else you should be very careful whith amending commits. In this case publishing a second commit which corrects the first one is probably a better solution. Otherwise inform all others that you amended a published commit so that they can react accordingly.</p>
<h2 id="Reverting_Changes">Reverting Changes</h2>
<h3 id="Reverting_changes_in_the_working_tree">Reverting changes in the working tree</h3>
@@ -1106,10 +1112,10 @@ Signed-off-by: William Shakespeare &lt;will.from@the.past&gt;
<h4 id="From_the_team_menu_on_a_project_node:">From the team menu on a project node:</h4>
<ul>
<li>Select
- <b>Team &gt; Switch To...</b> and select a branch name from the list
+ <b>Team &gt; Switch To...</b> and select a branch name from the list
</li>
</ul>
- <p>If there are too many branches the list does not show all of them. In this case </p>
+ <p>If there are too many branches the list does not show all of them. In this case</p>
<ul>
<li>Select
<b>Team &gt; Switch To... &gt; Other...</b>
@@ -1175,9 +1181,9 @@ Signed-off-by: William Shakespeare &lt;will.from@the.past&gt;
<h3 id="Renaming_an_Existing_Branch">Renaming an Existing Branch</h3>
<ul>
<li>Open the Git Repositories View</li>
- <li>Select the branch you want to rename </li>
+ <li>Select the branch you want to rename</li>
<li>Click
- <b>Rename Branch...</b>
+ <b>Rename Branch...</b>
</li>
<li>Enter the new branch name and click
<b>OK</b>
@@ -1186,30 +1192,30 @@ Signed-off-by: William Shakespeare &lt;will.from@the.past&gt;
<h3 id="Deleting_Branch">Deleting Branch</h3>
<ul>
<li>Open the Git Repositories View</li>
- <li>Select the branch you want to rename </li>
+ <li>Select the branch you want to rename</li>
<li>Click
- <b>Delete Branch</b>
+ <b>Delete Branch</b>
</li>
</ul>
<h3 id="Branch_Creation_Dialog">Branch Creation Dialog</h3>
- <p>There are several actions available to create a local branch. All these actions use the Branch Creation dialog: </p>
+ <p>There are several actions available to create a local branch. All these actions use the Branch Creation dialog:</p>
<p>
- <img border="0" src="images/Egit-0.11-BranchCreationDialog.png"/>
+ <img border="0" src="images/Egit-0.11-BranchCreationDialog.png"/>
</p>
- <p>The combo in the upper part allows to select the branch or commit the new branch shall be based on. Typically, this is a remote tracking branch, but it could be any branch or commit in the repository. </p>
- <p>The "Pull Strategy" group allows to override the default setup for the "upstream configuration" which is helpful when fetching and pushing, but particularly when pulling. Depending on the selected option the following configuration can be chosen: </p>
+ <p>The combo in the upper part allows to select the branch or commit the new branch shall be based on. Typically, this is a remote tracking branch, but it could be any branch or commit in the repository.</p>
+ <p>The "Pull Strategy" group allows to override the default setup for the "upstream configuration" which is helpful when fetching and pushing, but particularly when pulling. Depending on the selected option the following configuration can be chosen:</p>
<ul>
- <li>Rebase: When pulling, new changes will be fetched from upstream and the remote tracking branch will be updated. Then the current local branch will be rebased onto the updated remote tracking branch </li>
- <li>Merge: When pulling, the changes will be fetched from upstream and the remote tracking branch will be updated. Then the current local branch will be merged with the new changes. This is the default if the new branch is based on a remote tracking branch (but this default may be overriden by specific repository configuration) </li>
+ <li>Rebase: When pulling, new changes will be fetched from upstream and the remote tracking branch will be updated. Then the current local branch will be rebased onto the updated remote tracking branch</li>
+ <li>Merge: When pulling, the changes will be fetched from upstream and the remote tracking branch will be updated. Then the current local branch will be merged with the new changes. This is the default if the new branch is based on a remote tracking branch (but this default may be overriden by specific repository configuration)</li>
<li>None: When pulling, no specific upstream configuration will be done for the new branch; however, if a default remote exists (a remote with name "origin", pull will try to use the configuration of this remote; this is the default if the new branch is not based on a remote tracking branch</li>
</ul>
<p>You may view and edit the upstream configuration in the
- <a href="Tasks.html#Repository_Configuration">repository configuration</a>.
+ <a href="Tasks.html#Repository_Configuration">repository configuration</a>.
</p>
<p>EGit also supports the git configuration parameter <code>branch.autosetuprebase</code>, set it to <code>always</code> if you want to use the rebase pull strategy by default. If you set this in the repository configuration this is used for all local branches created based on a remote tracking branch in this repository, if you set it in your user configuration it will be used for all your repositories.</p>
<p>In the lower part, you can decide whether the new branch shall be checked out immediately.</p>
<h2 id="Merging">Merging</h2>
- <p>A merge incorporates changes from named commits (since the time their histories diverged from the current branch) into the current branch. </p>
+ <p>A merge incorporates changes from named commits (since the time their histories diverged from the current branch) into the current branch.</p>
<h3 id="Merging_a_branch_or_a_tag_into_the_current_branch">Merging a branch or a tag into the current branch</h3>
<p>You have two places where you can trigger the merge:</p>
<ul>
@@ -1225,10 +1231,10 @@ Signed-off-by: William Shakespeare &lt;will.from@the.past&gt;
<p>
<img border="0" src="images/MergeDialog.png"/>
</p>
- <p>On the dialog, select a branch or a tag you want to merge with your current branch. </p>
+ <p>On the dialog, select a branch or a tag you want to merge with your current branch.</p>
<h4 id="Starting_merge_from_the_Git_Repositories_View">Starting merge from the Git Repositories View</h4>
<p>You can trigger a merge from any branch and tag node and from the repository node if you have checked out a local branch. See
- <a href="Tasks.html#Merging_a_Branch_or_a_Tag">Merging a Branch or a Tag</a> for further details.
+ <a href="Tasks.html#Merging_a_Branch_or_a_Tag">Merging a Branch or a Tag</a> for further details.
</p>
<h4 id="Possible_merge_results">Possible merge results</h4>
<p>After pressing the Merge button, the following scenarios can occur:</p>
@@ -1306,7 +1312,7 @@ Signed-off-by: William Shakespeare &lt;will.from@the.past&gt;
</p>
<h4 id="Editing_conflicting_files">Editing conflicting files</h4>
<p>In the file content, the area where a pair of conflicting changes happened is marked with markers &lt;&lt;&lt;&lt;&lt;&lt;&lt;, =======, and &gt;&gt;&gt;&gt;&gt;&gt;&gt;. The part before the ======= is typically your side, and the part afterwards is typically their side (see
- <a href="http://www.kernel.org/pub/software/scm/git/docs/git-merge.html#_how_conflicts_are_presented" target="egit_external">http://www.kernel.org/pub/software/scm/git/docs/git-merge.html#_how_conflicts_are_presented</a> for more details).
+ <a href="http://www.kernel.org/pub/software/scm/git/docs/git-merge.html#_how_conflicts_are_presented" target="egit_external">http://www.kernel.org/pub/software/scm/git/docs/git-merge.html#_how_conflicts_are_presented</a> for more details).
</p>
<p>Open the file in an editor, edit the content and save the editor.</p>
<p>Note that this step is not mandatory. EGit does not check the content to decide if a conflict is resolved. The next step is the relevant one.</p>
@@ -1331,7 +1337,7 @@ Signed-off-by: William Shakespeare &lt;will.from@the.past&gt;
</ul>
<p>After pressing the "Commit" Button the merge is completed.</p>
<h3 id="Aborting_Merge">Aborting Merge</h3>
- <p>If a merge resulted in conflicts you can abort the merge with a hard reset to the current branch. This can be done in state "Conflicts" and in state "Merged", i.e. before and after you have resolved the conflicts. </p>
+ <p>If a merge resulted in conflicts you can abort the merge with a hard reset to the current branch. This can be done in state "Conflicts" and in state "Merged", i.e. before and after you have resolved the conflicts.</p>
<p>The hard reset can be done from the team menu, the Git Repositories View or the History View. See
<a href="Tasks.html#Revert_all_local_and_staged_changes">Revert all local and staged changes</a> for more details.
</p>
@@ -1341,73 +1347,67 @@ Signed-off-by: William Shakespeare &lt;will.from@the.past&gt;
<h2 id="Rebasing">Rebasing</h2>
<h3 id="Rebase_Introduction">Rebase Introduction</h3>
<p>Rebase applies a chain of commits onto a given commit. A typical scenario is the development of some feature on a "topic" branch which was created from a "master" branch at some point in time. When "master" is updated with changes e.g. from other developers while "topic" is still under development, it may become necessary to incorporate these changes into "topic".
- <br/>
+ <br/>
</p>
<p>Let's assume we start development on "topic" by creating the "topic" branch from master. At this point, both "master" and "topic" point to commit "E". When the first commit ("A") is added to "topic", the commit history of the repository looks like this:
- <br/>
+ <br/>
</p>
<pre> A topic
/
D---E master
</pre>
- <p>
- Now, let's assume that there were some more commits on "topic" and as well some more commits on "master" (for example, "master" may track some remote repository and there were some changes in that remote repository that have been pulled into "master"):
- <br/>
+ <p>Now, let's assume that there were some more commits on "topic" and as well some more commits on "master" (for example, "master" may track some remote repository and there were some changes in that remote repository that have been pulled into "master"):
+ <br/>
</p>
<pre> A---B---C topic
/
D---E---F---G master
</pre>
- <p>
- Now, in order to incorporate the changes in "master" into "topic", a Rebase of "topic" onto "master" would produce
- <br/>
+ <p>Now, in order to incorporate the changes in "master" into "topic", a Rebase of "topic" onto "master" would produce
+ <br/>
</p>
<pre> A'--B'--C' topic
/
D---E---F---G master
</pre>
- <p>
-
+ <p>
<br/> Technically, the sequence of commits that are contained in "topic" but not in "master" are applied (that is, cherry-picked) on top of "master" one by one.
- <br/>
+ <br/>
</p>
<p>Note that the commits A, B, C are neither lost nor changed, instead a new chain of commits A', B', C' with the same changes and commit messages as the original commits (but different commit IDs) will be created. The old commits A, B, C are still around in the object database but not visible anymore as they are no longer reachable from any branch. A', B', C' are different from the old ones as they now also contain changes F and G.</p>
<h3 id="Rebase.2C_A_Simple_Example">Rebase, A Simple Example</h3>
- <p>Let's have a look at some simple example: we have a text file "FamousWords.txt" which initially might have some content like </p>
+ <p>Let's have a look at some simple example: we have a text file "FamousWords.txt" which initially might have some content like</p>
<pre>Chapter 1
Once upon a time...
Chapter 2
To be or not to be
</pre>
- <p>
- Now, in "topic", two commits are created, the first one adding a French translation to Chapter 2, and another one adding a German translation: </p>
+ <p>Now, in "topic", two commits are created, the first one adding a French translation to Chapter 2, and another one adding a German translation:</p>
<p>After first change in "topic":
- <br/>
+ <br/>
</p>
<pre>Chapter 1
Once upon a time...
Chapter 2
To be or not to be
-Ètre ou non ètre pas
+Être ou ne pas être
</pre>
- <p>
- After second change in "topic":
- <br/>
+ <p>After second change in "topic":
+ <br/>
</p>
<pre>Chapter 1
Once upon a time...
Chapter 2
To be or not to be
-Ètre ou non ètre pas
+Être ou ne pas être
Sein oder nicht sein
</pre>
- <p>
- At the same time, the file was changed in "master" by adding two commits adding French and German translations to Chapter 1:
- <br/>
+ <p>At the same time, the file was changed in "master" by adding two commits adding French and German translations to Chapter 1:
+ <br/>
</p>
<pre>Chapter 1
Once upon a time...
@@ -1417,12 +1417,11 @@ Es war einmal
Chapter 2
To be or not to be
</pre>
- <p>
- The commit history looks like this: </p>
+ <p>The commit history looks like this:</p>
<p>
- <img border="0" src="images/EGit-0.10-MergeDemoHistory.png"/>
+ <img border="0" src="images/EGit-0.10-MergeDemoHistory.png"/>
</p>
- <p>Now, if "topic" is rebased onto "master", the two changes in topic are applied in the same sequence as they were applied during the evolution of "topic". </p>
+ <p>Now, if "topic" is rebased onto "master", the two changes in topic are applied in the same sequence as they were applied during the evolution of "topic".</p>
<p>The result is a merged version of "FamousWords.txt":
<br/>
</p>
@@ -1433,12 +1432,12 @@ Es war einmal
Chapter 2
To be or not to be
-Ètre ou non ètre pas
+Être ou ne pas être
Sein oder nicht sein
</pre>
<p>and a commit history with the commit history of "topic" on top of the current "master":
- <br/>
+ <br/>
</p>
<p>
<img border="0" src="images/EGit-0.10-MergeDemoHistoryAfterRebase.png"/>
@@ -1447,7 +1446,7 @@ Sein oder nicht sein
<p>Up to now, we have assumed that the changes in "topic" can be auto-merged into "master". In the real world, however, it may happend that you encounter conflicts during rebase. Now, if a commit that is to be cherry-picked contains changes that conflict with changes in "master", the rebase operation is interrupted after applying the conflicting change; the conflicts are visualized in the usual way (with conflict markers) and the user gets a chance to decide whether to</p>
<ul>
<li>resolve these conflicts manually,</li>
- <li>skip the current commit, or </li>
+ <li>skip the current commit, or</li>
<li>abort the rebase completely</li>
</ul>
<p>If
@@ -1498,7 +1497,7 @@ Sein oder nicht sein
<h3 id="Cherry-pick_Introduction">Cherry-pick Introduction</h3>
<p>A given commit
<i>C'' on branch ''stable-1.0</i> contains a set of changes you would like to integrate in your current development on branch
- <i>master</i>.
+ <i>master</i>.
</p>
<pre> A--B--C--D stable-1.0
/
@@ -1540,10 +1539,10 @@ Sein oder nicht sein
</p>
<ul>
<li>Resolve the conflicts by editing the corresponding sources as described in
- <a href="Tasks.html#Resolving_a_merge_conflict">Resolving a merge conflict</a>
+ <a href="Tasks.html#Resolving_a_merge_conflict">Resolving a merge conflict</a>
</li>
<li>
- <b>Team &gt; Add</b> the files you edited to mark the conflicts resolved
+ <b>Team &gt; Add</b> the files you edited to mark the conflicts resolved
</li>
<li>Commit the changes using
<b>Team &gt; Commit</b>
@@ -1556,7 +1555,7 @@ Sein oder nicht sein
<h3 id="Creating_a_Tag">Creating a Tag</h3>
<ul>
<li>Select
- <b>Team &gt; Tag...</b> from the project context menu.
+ <b>Team &gt; Advanced &gt; Tag...</b> from the project context menu.
</li>
</ul>
<p>
@@ -1604,9 +1603,23 @@ Sein oder nicht sein
</li>
</ul>
<h3 id="Deletion_of_tags">Deletion of tags</h3>
- <p>This is not yet supported.</p>
+ <p>In order to delete a tag, select the tag to be deleted and click
+ <b>Delete Tag</b>.
+ </p>
+ <p>
+ <b>Note:</b> it's a bad practice to delete tags which have already been published on a public server, some Git servers even disallow tag deletion to ensure traceability for releases which are usually tagged. Also see the
+ <a href="http://schacon.github.com/git/git-tag.html" target="egit_external">section "On re-tagging"</a> in the Git reference documentation of the tag command.
+ </p>
<h3 id="Light-weight_and_Signed_Tags">Light-weight and Signed Tags</h3>
- <p>Light-weight tags are shown in the Repositories View as well as in the Create Tag dialog, but can not be edited. In the History View, they are shown as yellow labels.</p>
+ <p>Light-weight tags are shown in the Repositories View as well as in the Create Tag dialog, but can not be edited.
+ Tags are shown with a blue icon in the Repositories View, lightweight tags are decorated with a dark blue "L".</p>
+ <p>
+ <img border="0" src="images/Egit-1.1-tags.png"/>
+ </p>
+ <p>In the History View, tags are shown as yellow labels.</p>
+ <p>
+ <img border="0" src="images/Egit-1.1-tags-history.png"/>
+ </p>
<p>Signed tags are not yet supported by EGit, use command line <tt>
<b>git tag</b></tt> or <tt>
<b>git tag -s</b></tt> instead.
@@ -1637,9 +1650,9 @@ Sein oder nicht sein
<img border="0" src="images/Egit-0.0-create-patch-dialog.png"/>
</p>
<p>The name of the patch file is created from the first line of the commit message.</p>
- <p>On the second page you can change the patch format. </p>
+ <p>On the second page you can change the patch format.</p>
<p>Currently there is one check box:
- <b>Export in git patch format</b>.
+ <b>Export in git patch format</b>.
</p>
<ul>
<li>If you do not check it (this is the default) the patch can be applied with the eclipse
@@ -1652,142 +1665,142 @@ Sein oder nicht sein
</ul>
<p>Binary diffs are currently not produced.</p>
<h3 id="Applying_Patches">Applying Patches</h3>
- <p>Currently it s not possible to apply all patches in git format. It is possible to apply patches using the standard Eclipse (unified diff) format using
+ <p>Currently EGit isn't able to apply patches in git format. It is possible to apply patches using the standard Eclipse (unified diff) format using
<b>Team &gt; Apply Patch...</b>. Git patches may contain non-standard extensions for rename and binary diffs. The current version of EGit does not generate these extensions.
</p>
<p>
<br/>
</p>
<h2 id="Managing_Repositories">Managing Repositories</h2>
- <p>The "Git Repositories View" is the primary UI element to facilitate working with multiple Repositories simultaneously (i.e. within one Eclipse Workspace). </p>
+ <p>The "Git Repositories View" is the primary UI element to facilitate working with multiple Repositories simultaneously (i.e. within one Eclipse Workspace).</p>
<p>This view can be opened using the menu path
<br/>
- <b>Windows &gt; Show View &gt; Other... &gt; Git &gt; Git Repositories</b>
+ <b>Windows &gt; Show View &gt; Other... &gt; Git &gt; Git Repositories</b>
</p>
<p>It is also part of the "Git Repository Exploring" perspective available using menu path
<br/>
- <b>Window &gt; Open Perspective &gt; Other... &gt; Git Repository Exploring</b>
+ <b>Window &gt; Open Perspective &gt; Other... &gt; Git Repository Exploring</b>
</p>
<p>If you already have projects in your workspace which are shared with a Git Repository, you can use
- <br/>'
- <i>Team &gt; Show in Repositories View</i>'
+ <br/>
+ <b>Team &gt; Show in Repositories View</b>
</p>
- <p>on any resource to open the view. </p>
+ <p>on any resource to open the view.</p>
<h3 id="Adding_Repositories_to_the_Git_Repositories_View">Adding Repositories to the Git Repositories View</h3>
- <p>Initially, the Git Repositories View is empty. In order to add Repositories to it, there are several options: </p>
+ <p>Initially, the Git Repositories View is empty. In order to add Repositories to it, there are several options:</p>
<ol>
- <li>Adding a Repository from the Local File System manually </li>
- <li>Cloning a Repository and having the cloned Repository added to the view automatically </li>
- <li>Creating a Repository on the Local File System </li>
+ <li>Adding a Repository from the Local File System manually</li>
+ <li>Cloning a Repository and having the cloned Repository added to the view automatically</li>
+ <li>Creating a Repository on the Local File System</li>
<li>Adding a Repository by pasting a Git Repository path to the view</li>
</ol>
<h4 id="Adding_a_Repository_manually">Adding a Repository manually</h4>
<p>You can add a Repository from your local file system to the Git Repositories View without cloning it. This can be helpful if you are setting up a new Eclipse workspace and want to re-use your Git Repositories. Use the
- <b>Add an existing Git Repository</b> button from the view's toolbar:
+ <b>Add an existing Git Repository</b> button from the view's toolbar:
</p>
<p>
- <img border="0" src="images/RepoMgrAddRepositoryIcon.png"/>
+ <img border="0" src="images/RepoMgrAddRepositoryIcon.png"/>
</p>
<p>A dialog will appear prompting you for a directory of your local file system. After selecting the correct directory, you can hit the
<b>Search</b> button to see a list of Git Repositories in this directory. You can then select some or all found Repositories and add them to the view using
- <b>OK</b>:
+ <b>OK</b>:
</p>
<p>
- <img border="0" src="images/Egit-0.11-import-projects-add-dialog.png"/>
+ <img border="0" src="images/Egit-0.11-import-projects-add-dialog.png"/>
</p>
<h4 id="Cloning_a_Repository_2">Cloning a Repository</h4>
<p>In order to clone a Repository, refer to
- <a href="Tasks.html#Cloning_a_Repository">Cloning remote Repositories</a>. After a successful clone operation, the newly cloned Repository should appear in the Git Repositories View automatically.
+ <a href="Tasks.html#Cloning_a_Repository">Cloning remote Repositories</a>. After a successful clone operation, the newly cloned Repository should appear in the Git Repositories View automatically.
</p>
<p>You can also use the
- <b>Clone a Git Repository</b> button from the view's toolbar to start the Clone wizard:
+ <b>Clone a Git Repository</b> button from the view's toolbar to start the Clone wizard:
</p>
<p>
- <img border="0" src="images/RepoMgrCloneRepositoryIcon.png"/>
+ <img border="0" src="images/RepoMgrCloneRepositoryIcon.png"/>
</p>
<p>Please refer to
- <a href="Tasks.html#Cloning_a_Repository">Cloning remote Repositories</a> about how to use the wizard.
+ <a href="Tasks.html#Cloning_a_Repository">Cloning remote Repositories</a> about how to use the wizard.
</p>
<h4 id="Creating_a_Repository">Creating a Repository</h4>
<p>You can create a new, empty repository on the local file system. This is useful if you later on want to create one or more new projects below this repository. Another usecase is to create a new bare repository where you can push to. Use the
- <b>Create a new Git Repository</b> button from the view's toolbar:
+ <b>Create a new Git Repository</b> button from the view's toolbar:
</p>
<p>
- <img border="0" src="images/RepoMgrCreateRepositoryIcon.png"/>
+ <img border="0" src="images/RepoMgrCreateRepositoryIcon.png"/>
</p>
- <p>A dialog will appear which lets you choose a directory: </p>
+ <p>A dialog will appear which lets you choose a directory:</p>
<p>
- <img border="0" src="images/RepoMgrCreateRepositoryDialog.png"/>
+ <img border="0" src="images/RepoMgrCreateRepositoryDialog.png"/>
</p>
<p>If you select the checkbox
- <b>Create as Bare Repository</b> the new repository will not have a working directory. You then can only add content by pushing changes from another repository.
+ <b>Create as Bare Repository</b> the new repository will not have a working directory. You then can only add content by pushing changes from another repository.
</p>
<h4 id="Adding_a_Repository_using_Copy_and_Paste">Adding a Repository using Copy and Paste</h4>
- <p>As a shortcut, it is also possible to paste the local file system path of a Git repository from the clipboard into this view. In order to do so, copy the path of a Git repository (the full path of its <code>.git</code> folder) to the clipboard, then open the context menu on the view panel: </p>
+ <p>As a shortcut, it is also possible to paste the local file system path of a Git repository from the clipboard into this view. In order to do so, copy the path of a Git repository (the full path of its <code>.git</code> folder) to the clipboard, then open the context menu on the view panel:</p>
<p>
- <img border="0" src="images/RepoMgrPasteRepositoryPath.png"/>
+ <img border="0" src="images/RepoMgrPasteRepositoryPath.png"/>
</p>
<p>or click
- <b>Edit &gt; Paste</b> from the main menu (or the corresponding keyboard shortcut). If the clipboard content is not suitable, an error popup will be displayed, otherwise the added Repository should appear automatically.
+ <b>Edit &gt; Paste</b> from the main menu (or the corresponding keyboard shortcut). If the clipboard content is not suitable, an error popup will be displayed, otherwise the added Repository should appear automatically.
</p>
- <p>After the view has been populated with some repositories, it should look like this: </p>
+ <p>After the view has been populated with some repositories, it should look like this:</p>
<p>
- <img border="0" src="images/RepoMgrViewWithRepos.png"/>
+ <img border="0" src="images/RepoMgrViewWithRepos.png"/>
</p>
<h3 id="Removing_Repositories">Removing Repositories</h3>
<h4 id="Removing_a_Repository_from_the_Repositories_View">Removing a Repository from the Repositories View</h4>
- <p>In order to remove a repository from the Repositories View select a repository and click "Remove Repository" </p>
+ <p>In order to remove a repository from the Repositories View select a repository and click "Remove Repository"</p>
<p>
- <img border="0" src="images/Egit-0.10-RemoveRepository.png"/>
+ <img border="0" src="images/Egit-0.10-RemoveRepository.png"/>
</p>
<h4 id="Deleting_a_Repository">Deleting a Repository</h4>
- <p>In order to delete a repository, select it in the Repositories View and click "Delete Repository". </p>
+ <p>In order to delete a repository, select it in the Repositories View and click "Delete Repository".</p>
<p>
- <img border="0" src="images/Egit-0.10-DeleteRepository.png"/>
+ <img border="0" src="images/Egit-0.10-DeleteRepository.png"/>
</p>
- <p>Then confirm that you want to delete the repository </p>
+ <p>Then confirm that you want to delete the repository</p>
<p>
- <img border="0" src="images/Egit-0.10-ConfirmRepositoryDeletion.png"/>
+ <img border="0" src="images/Egit-0.10-ConfirmRepositoryDeletion.png"/>
</p>
- <p>and decide if you want to delete projects contained in the repository from the Eclipse workspace. </p>
+ <p>and decide if you want to delete projects contained in the repository from the Eclipse workspace.</p>
<p>
- <img border="0" src="images/Egit-0.10-ConfirmProjectRemoval.png"/>
+ <img border="0" src="images/Egit-0.10-ConfirmProjectRemoval.png"/>
</p>
<p>
- <br/>
+ <br/>
</p>
<h3 id="Structure_of_the_Git_Repositories_View">Structure of the Git Repositories View</h3>
- <p>The following screenshot shows the topmost two levels of the Git Repositories View: </p>
+ <p>The following screenshot shows the topmost two levels of the Git Repositories View:</p>
<p>
- <img border="0" src="images/Egit-0.11-RepoViewTopLevel.png"/>
+ <img border="0" src="images/Egit-0.11-RepoViewTopLevel.png"/>
</p>
<p>The root node represents the Repository itself. The node text indicates the name of the Repository and its location in the local file system. The "Branches" and "Tags" nodes allow browsing and manipulation of tags and branches. The "References" node lists other references which are not branches or tags, most notably the "HEAD" and "FETCH_HEAD" symbolic references (see
<a href="Reference.html#Git_References">Git References</a>).
</p>
- <p>The "Working directory" node displays the location and structure of the working directory on the local file system (only in case of a development, or non-bare Repository, for bare Repositories, this node is always a leaf). </p>
+ <p>The "Working Directory" node displays the location and structure of the working directory on the local file system (only in case of a development, or non-bare Repository, for bare Repositories, this node is always a leaf).</p>
<p>Finally, the "Remotes" node allows browsing and manipulating the remote configurations used for Fetch and Push.</p>
<h3 id="Functions_of_the_Git_Repositories_View">Functions of the Git Repositories View</h3>
<h4 id="Project_Import">Project Import</h4>
- <p>In order to work with the contents of a Git Repository, its files and folders must be imported into the Eclipse workspace in the form of projects. While the Git Clone wizard allows to do such imports directly after cloning, the Git Repositories View allows to trigger project imports independently of the clone operation. </p>
- <p>The "Import Projects..." context menu is available on the "Repository" node as well as on any "Folder" node within the "Working Directory" node and the "Working Directory" node itself: </p>
+ <p>In order to work with the contents of a Git Repository, its files and folders must be imported into the Eclipse workspace in the form of projects. While the Git Clone wizard allows to do such imports directly after cloning, the Git Repositories View allows to trigger project imports independently of the clone operation.</p>
+ <p>The "Import Projects..." context menu is available on the "Repository" node as well as on any "Folder" node within the "Working Directory" node and the "Working Directory" node itself:</p>
<p>
- <img border="0" src="images/Egit-0.11-ImportProjectsFromRepoView.png"/>
+ <img border="0" src="images/Egit-0.11-ImportProjectsFromRepoView.png"/>
</p>
<p>The rationale for offering the
<b>Import Projects...</b> action on several nodes is that some of the wizards used for importing projects can take the file system directory into account, for example the
- <b>Import Existing Projects</b> wizard. If the import is started from the "Repository" or the "Working Directory" node, the working directory of the repository is set as context, otherwise the directory corresponding to the currently selected "Folder" node.
+ <b>Import Existing Projects</b> wizard. If the import is started from the "Repository" or the "Working Directory" node, the working directory of the repository is set as context, otherwise the directory corresponding to the currently selected "Folder" node.
</p>
<p>The details of project import are discussed in
- <a href="Tasks.html#Use_the_New_Projects_Wizard">Use the New Projects Wizard</a>.
+ <a href="Tasks.html#Use_the_New_Projects_Wizard">Use the New Projects Wizard</a>.
</p>
<h4 id="Branch_and_Tag_Support">Branch and Tag Support</h4>
- <p>The "Branches" node allows to create, browse, checkout and delete local and remote branches. The "Tags" node allows to browse and check out tags. Both the "Branches" node and the "Tags" node allow to merge the branch or tag into the currently checked out branch and also to synchronize with the currently checked out branch. </p>
- <p>For better readability, branches are organized in two sub-nodes for local and remote branches, respectively, and only the shortened names are displayed, e.g. instead of <tt>"refs/heads/master"</tt> you would find an entry <tt>"master"</tt> under the "Local Branches" node, instead of <tt>"refs/remotes/origin/master"</tt> the shortened name <tt>"origin/master"</tt> is displayed under the "Remote Branches" node. Similarly, tag names are shortened by omitting the <tt>"refs/tags/"</tt> prefix: </p>
+ <p>The "Branches" node allows to create, browse, checkout and delete local and remote branches. The "Tags" node allows to browse and check out tags. Both the "Branches" node and the "Tags" node allow to merge the branch or tag into the currently checked out branch and also to synchronize with the currently checked out branch.</p>
+ <p>For better readability, branches are organized in two sub-nodes for local and remote branches, respectively, and only the shortened names are displayed, e.g. instead of <tt>"refs/heads/master"</tt> you would find an entry <tt>"master"</tt> under the "Local Branches" node, instead of <tt>"refs/remotes/origin/master"</tt> the shortened name <tt>"origin/master"</tt> is displayed under the "Remote Branches" node. Similarly, tag names are shortened by omitting the <tt>"refs/tags/"</tt> prefix:</p>
<p>
- <img border="0" src="images/RepoMgrBranchesAndTags.png"/>
+ <img border="0" src="images/RepoMgrBranchesAndTags.png"/>
</p>
<h5 id="Check-out_of_Branches_and_Tags">Check-out of Branches and Tags</h5>
- <p>Branches and tags can be checked out by either double-clicking on the respective node or by selecting the corresponding context menu entry. </p>
+ <p>Branches and tags can be checked out by either double-clicking on the respective node or by selecting the corresponding context menu entry.</p>
<h5 id="Creation_and_Deletion_of_Branches">Creation and Deletion of Branches</h5>
<p>Local branches can be created using the
<a href="Tasks.html#Branch_Creation_Dialog">Branch Creation Dialog</a>. The wizard is opened by right-clicking on the "Branches", the "Local Branches" on any "Branch" and "Tag" node).
@@ -1799,7 +1812,7 @@ Sein oder nicht sein
</p>
<h5 id="Merging_a_Branch_or_a_Tag">Merging a Branch or a Tag</h5>
<p>You can trigger a merge from any branch and tag node and from the repository node if you have checked out a local branch. See
- <a href="Tasks.html#Merging">Merging</a> for further details of the merging features.
+ <a href="Tasks.html#Merging">Merging</a> for further details of the merging features.
</p>
<ul>
<li>When you select any branch node other than the currently checked out branch or any tag node, use
@@ -1814,144 +1827,159 @@ Sein oder nicht sein
</ul>
<h5 id="Synchronizing_with_a_Branch_or_a_Tag">Synchronizing with a Branch or a Tag</h5>
<p>You can perform a comparison of the changes in your HEAD with the changes done in any other branch or tag. Right click and select
- <b>Synchronize...</b> on any branch or tag. Then the eclipse synchronize view opens which contains a representation of the changes that are contained in your HEAD but not on the other branch or tag (outgoing change) or vice versa (incoming change). Please refer to the documentation of the synchronize feature for further details.
+ <b>Synchronize...</b> on any branch or tag. Then the eclipse synchronize view opens which contains a representation of the changes that are contained in your HEAD but not on the other branch or tag (outgoing change) or vice versa (incoming change). Please refer to the documentation of the synchronize feature for further details.
</p>
<h5 id="Determining_the_Checked-out_Branch">Determining the Checked-out Branch</h5>
- <p>There are two ways to determine which branch or tag is currently checked out: the checked out branch/tag node is decorated with a little check mark and the "HEAD" entry under the "Symbolic References" node shows the (full) name of the checked out branch: </p>
+ <p>There are two ways to determine which branch or tag is currently checked out: the checked out branch/tag node is decorated with a little check mark and the "HEAD" entry under the "Symbolic References" node shows the (full) name of the checked out branch:</p>
<p>
- <img border="0" src="images/RepoMgrCheckedOutBranch.png"/>
+ <img border="0" src="images/RepoMgrCheckedOutBranch.png"/>
</p>
<h5 id="Resetting_to_a_Branch_or_a_Tag">Resetting to a Branch or a Tag</h5>
<p>Right click and select
<b>Reset...</b> on any branch or tag. This opens a dialog which lets you decide on the reset type. See
- <a href="Tasks.html#Resetting_your_current_HEAD">Resetting you current HEAD</a> for further details.
+ <a href="Tasks.html#Resetting_your_current_HEAD">Resetting you current HEAD</a> for further details.
</p>
<h5 id=".22Detached.22_HEAD">"Detached" HEAD</h5>
<p>If HEAD is "detached", i.e. is not pointing to the tip of a local branch but to a commit or tag, then none or several "checked-out" markers may appear in the tree, since any number of remote branch or tags may point to the currently checked out commit. The state you are in while your HEAD is detached is not recorded by any branch (which is natural --- you are not on any branch).</p>
<h4 id="Inspecting_References">Inspecting References</h4>
- <p>The References node displays some References other than branches and tags (the list is dynamic and depends on the current state of the Repository): </p>
+ <p>The References node displays some References other than branches and tags (the list is dynamic and depends on the current state of the Repository):</p>
<p>
- <img border="0" src="images/Egit-0.11-RepoViewReferencesNode.png"/>
+ <img border="0" src="images/Egit-0.11-RepoViewReferencesNode.png"/>
</p>
- <p>If the Reference is symbolic, i.e. points to another Reference, the name of the target reference is shown, followed by the object ID of the reference's target. If the Reference is not symbolic, only the object ID is shown. </p>
- <p>In the example above, HEAD is a symbolic Reference pointing to branch "refs/heads/master" (i.e. branch "master" is checked out", while FETCH_HEAD points directly to commit 226a7f... . </p>
+ <p>If the Reference is symbolic, i.e. points to another Reference, the name of the target reference is shown, followed by the object ID of the reference's target. If the Reference is not symbolic, only the object ID is shown.</p>
+ <p>In the example above, HEAD is a symbolic Reference pointing to branch "refs/heads/master" (i.e. branch "master" is checked out", while FETCH_HEAD points directly to commit 226a7f... .</p>
<p>The following actions are available on right-clicking on a Reference:
<b>Checkout '''(unless the Reference is already checked out) and '''Create Branch</b>
<b>...</b> .
</p>
<h4 id="Browsing_the_Working_Directory">Browsing the Working Directory</h4>
- <p>The "Working Directory" node visualizes the local file system structure of the Git Repository. It is also possible to open a text editor on the files: </p>
+ <p>The "Working Directory" node visualizes the local file system structure of the Git Repository. It is also possible to open a text editor on the files:</p>
<p>
- <img border="0" src="images/RepoMgrOpenTextEditor.png"/>
+ <img border="0" src="images/RepoMgrOpenTextEditor.png"/>
</p>
+ <p>Alternatively, files can be opened by dragging them from the Working Directory to the Editor Area.</p>
<p>Also, on all file and folder nodes as well as on the "Repository" node, an option is offered to copy the (file-system specific) path to the clipboard. This is sometimes useful when the path is needed, for example to open a directory using a file browser or to copy and paste Repositories between view instances (see above about how to add Repositories to the view). The
<b>Copy to Clipboard</b> action is also available using
<b>Edit &gt; Copy</b> (or the corresponding keyboard shortcut).
</p>
<h4 id="Repository_Configuration">Repository Configuration</h4>
- <p>Integration with the generic "Properties" view in Eclipse allows to view and edit the Git Configuration (global and repository-specific configuration). If the "Properties" view is open, it is updated automatically when a "Repository" node is selected. For convenience, an
- <b>Open Properties view</b> action is provided in the context menu:
- </p>
- <p>
- <img border="0" src="images/RepoMgrPropertiesView.png"/>
- </p>
- <p>With a drop down box (left red box in the screen shot) you can switch between the display of the Repository Configuration, the Global Configuration and a view which aggregates both. If the view displays the Repository Configuration or the Global Configuration you can open an editor dialog with the
+ <p>Integration with the generic "Properties" view in Eclipse allows to view and edit the Git Configuration (global and repository-specific configuration). If the "Properties" view is open, it is updated automatically when a "Repository" node is selected. With a drop down box (left red box in the screen shot) you can switch between the display of the Repository Configuration, the Global Configuration and a view which aggregates both. If the view displays the Repository Configuration or the Global Configuration you can open an editor dialog with the
<b>Edit</b> button (right red box in the screen shot). The editor dialog has the same functionality as the preference page
- <b>Team &gt; Git &gt; Configuration</b>.
+ <b>Team &gt; Git &gt; Configuration</b>.
+ </p>
+ <p>In the Git Repositories view, there is a
+ <b>Properties</b> action in the context menu, which will open a configuration dialog allowing to edit the Repository Configuration. Here, key value pairs can be added, changed or deleted. The
+ <b>Open</b> button allows to open the Repository Configuration file in a text editor.
</p>
<h4 id="Remote_Repositories">Remote Repositories</h4>
<p>The "Remotes" node allows for browsing and editing Remote configurations. Each Remote configuration has a name and either a Push Specification, a Fetch Specification, or both. If a "Remote Configuration" node or any of its children is selected, the
- <b>Properties</b> view will show a summary of the Remote configuration. In this example: there is a Remote configuration named "origin" which only has a Fetch Specification, but no Push Specification:
+ <b>Properties</b> view will show a summary of the Remote configuration. In this example: there is a Remote configuration named "origin" which only has a Fetch Specification, but no Push Specification:
</p>
<p>
- <img border="0" src="images/RepoMgrRemoteConfig.png"/>
+ <img border="0" src="images/RepoMgrRemoteConfig.png"/>
</p>
- <p>Menu actions are provided to add, configure, and remove Remote configurations and Fetch and Push Specifications. </p>
+ <p>Menu actions are provided to add, configure, and remove Remote configurations and Fetch and Push Specifications.</p>
<h5 id="Direct_Fetch_and_Push_Support">Direct Fetch and Push Support</h5>
- <p>It is possible to execute fetch and push directly (i.e. without a wizard) on the respective "Fetch" and "Push" nodes: </p>
+ <p>It is possible to execute fetch and push directly (i.e. without a wizard) on the respective "Fetch" and "Push" nodes:</p>
<p>
- <img border="0" src="images/RepoMgrSimpleFetch.png"/>
+ <img border="0" src="images/RepoMgrSimpleFetch.png"/>
</p>
- <p>Note that the fetch or push operation will be executed immediately in an asynchronous job; on completion you will get a confirmation pop-up displaying the fetch result. </p>
- <p>The "Fetch" node contains a so called fetch specification and the "Push" node contains a so called push specification. </p>
+ <p>Note that the fetch or push operation will be executed immediately in an asynchronous job; on completion you will get a confirmation pop-up displaying the fetch result.</p>
+ <p>The "Fetch" node contains a so called fetch specification and the "Push" node contains a so called push specification.</p>
<p>A default fetch specification is created when the repository is cloned. You can edit the fetch specification with the menu entry
<b>Configure Fetch...</b>. This opens a wizard. On the first page you can edit the Fetch URI. Ob the second page you can determine the fetch ref specifications, see
- <a href="Tasks.html#Fetch_Ref_Specifications">Fetch Ref Specifications</a>.
+ <a href="Tasks.html#Fetch_Ref_Specifications">Fetch Ref Specifications</a>.
</p>
<p>You can create or edit a push specification with the menu entry
<b>Configure Push...</b>. This opens a wizard. On the first page you can edit the Push URIs. If a fetch is specified the fetch URI is automatically included into the push specification and no additional Push URI is needed. On the second page you can determine the push ref specifications, see
- <a href="Tasks.html#Push_Ref_Specifications">Push Ref Specifications</a>.
+ <a href="Tasks.html#Push_Ref_Specifications">Push Ref Specifications</a>.
</p>
<h5 id="Adding_a_Remote_Configuration">Adding a Remote Configuration</h5>
- <p>This is done using a context menu action on the "Remotes" node. A wizard is started asking for the name of the new configuration and whether to configure Fetch, Push, or both: </p>
+ <p>This is done using a context menu action on the "Remotes" node. A wizard is started asking for the name of the new configuration and whether to configure Fetch, Push, or both:</p>
<p>
- <img border="0" src="images/RepoMgrNewRemote.png"/>
+ <img border="0" src="images/RepoMgrNewRemote.png"/>
</p>
<p>If the
- <b>Configure Fetch</b> checkbox was selected, the next wizard page will ask for the URI of the Repository to fetch from:
+ <b>Configure Fetch</b> checkbox was selected, the next wizard page will ask for the URI of the Repository to fetch from:
</p>
<p>
- <img border="0" src="images/Egit-0.9-repo-view-createRemoteWizardFetch.png"/>
+ <img border="0" src="images/Egit-0.9-repo-view-createRemoteWizardFetch.png"/>
</p>
<p>Click
<b>Change...</b> to open a dialog that allows you to select a URI. The next step is to define the Remote Specification for the fetch URI. See
- <a href="Tasks.html#Fetch_Ref_Specifications">Fetch Ref Specifications</a> about the details.
+ <a href="Tasks.html#Fetch_Ref_Specifications">Fetch Ref Specifications</a> about the details.
</p>
<p>If the
<b>Configure Push</b> checkbox was selected, the next wizard page will ask for the URIs of the repositories to push to. This is actually a list, as you can push to multiple repositories at once. Click
<b>Add....</b> to add URIs to the list using the same dialog as above. You can remove URIs by marking them in the list and hitting
<b>Remove</b>. This step is completely optional if there is already a fetch URI defined. In this case, the fetch URI will also be used for push. If at least one push URI is defined in this steps, it will override the fetch URI. In this example, there is already a fetch URI, so the
- <b>Next</b> button is enabled, even though there is no Push URI in the list:
+ <b>Next</b> button is enabled, even though there is no Push URI in the list:
</p>
<p>
- <img border="0" src="images/Egit-0.9-repo-view-createRemoteWizardPush.png"/>
+ <img border="0" src="images/Egit-0.9-repo-view-createRemoteWizardPush.png"/>
</p>
<p>The next step is to define the Remote Specification for the push URIs. See
- <a href="Tasks.html#Push_Ref_Specifications">Push Ref Specifications</a> about the details.
+ <a href="Tasks.html#Push_Ref_Specifications">Push Ref Specifications</a> about the details.
</p>
- <p>Upon completion, the new Remote configuration will be visible: </p>
+ <p>Upon completion, the new Remote configuration will be visible:</p>
<p>
- <img border="0" src="images/RepoMgrRemoteCreated.png"/>
+ <img border="0" src="images/RepoMgrRemoteCreated.png"/>
</p>
<h5 id="Changing_Remote_Configurations">Changing Remote Configurations</h5>
- <p>It is also possible to add, remove, or change Fetch/Push Specifications for an existing Remote configuration using the context menu. </p>
+ <p>It is also possible to add, remove, or change Fetch/Push Specifications for an existing Remote configuration using the context menu.</p>
<h3 id="Refresh">Refresh</h3>
<p>The view is auto-refreshed periodically. The
- <b>Refresh</b> button in the toolbar allows to trigger an immediate refresh:
+ <b>Refresh</b> button in the toolbar allows to trigger an immediate refresh:
</p>
<p>
- <img border="0" src="images/RepoMgrRefresh.png"/>
+ <img border="0" src="images/RepoMgrRefresh.png"/>
</p>
<h3 id="Link_with_Selection">Link with Selection</h3>
<p>If the
- <b>Link with selection</b> toggle is enabled, the file or folder corresponding to the current workbench selection will be displayed automatically:
+ <b>Link with selection</b> toggle is enabled, the file or folder corresponding to the current workbench selection will be displayed automatically:
</p>
<p>
- <img border="0" src="images/RepoMgrLinkWithSelection.png"/>
+ <img border="0" src="images/RepoMgrLinkWithSelection.png"/>
</p>
<h3 id="Link_with_Editor">Link with Editor</h3>
<p>If the
- <b>Link with editor</b> toggle is enabled, the file or folder corresponding to the currently active editor will be displayed automatically:
+ <b>Link with editor</b> toggle is enabled, the file or folder corresponding to the currently active editor will be displayed automatically:
</p>
<p>
- <img border="0" src="images/RepoMgrLinkWithEditor.png"/>
+ <img border="0" src="images/RepoMgrLinkWithEditor.png"/>
</p>
<h3 id="Hierarchical_Branch_Layout">Hierarchical Branch Layout</h3>
<p>If the
- <b>Hierarchical Branch Layout</b> toggle is enabled, branches will be shown in a hierarchical layout using slash (/) as hierarchy separator:
+ <b>Hierarchical Branch Layout</b> toggle is enabled, branches will be shown in a hierarchical layout using slash (/) as hierarchy separator:
</p>
<p>
- <img border="0" src="images/RepoMgrHierarchicalBranchLayout.png"/>
+ <img border="0" src="images/RepoMgrHierarchicalBranchLayout.png"/>
</p>
- <p>This can be helpful for organizing large numbers of branches. </p>
+ <p>This can be helpful for organizing large numbers of branches.</p>
<h3 id="Bare_Repositories">Bare Repositories</h3>
- <p>"Bare" Git Repositories (as opposed to "development" or "standard" Repositories) have no working directory by definition, so all actions related to the working directory (check-out, project import, browsing the working directory) are not available for such Repositories. The "Bare-ness" of a Repository is visualized on the "Working Directory" node, which is always a leaf: </p>
+ <p>"Bare" Git Repositories (as opposed to "development" or "standard" Repositories) have no working directory by definition, so all actions related to the working directory (check-out, project import, browsing the working directory) are not available for such Repositories. The "Bare-ness" of a Repository is visualized on the "Working Directory" node, which is always a leaf:</p>
<p>
<img border="0" src="images/RepoMgrBareRepository.png"/>
</p>
<p>Bare repositories are only changed by pushing changes to them.</p>
<h3 id="Removing_Repositories_from_the_Git_Repositories_View">Removing Repositories from the Git Repositories View</h3>
- <p>This is offered as a menu action on the "Repository" node. Note that this does not delete the Repository, but just removes the node from the view. If there are projects in the workspace which are located in the working directory of the Repository, the user will be prompted to confirm deletion of these projects from the Eclipse workspace. </p>
+ <p>This is offered as a menu action on the "Repository" node. Note that this does not delete the Repository, but just removes the node from the view. If there are projects in the workspace which are located in the working directory of the Repository, the user will be prompted to confirm deletion of these projects from the Eclipse workspace.</p>
+ <h3 id="Showing_Repository_in_Related_Views">Showing Repository in Related Views</h3>
+ <h4 id="Show_in_History">Show in History</h4>
+ <p>The command
+ <b>Show in &gt; History</b> will open the
+ <a href="Reference.html#History_View">History View</a> showing all changes in the selected repository.
+ </p>
+ <h4 id="Show_in_Reflog">Show in Reflog</h4>
+ <p>The command
+ <b>Show in &gt; Reflog</b> will open the
+ <a href="Reference.html#Git_Reflog_View">Git Reflog view</a> showing the Git reflog of the selected repository.
+ </p>
+ <h4 id="Show_in_Properties">Show in Properties</h4>
+ <p>The command
+ <b>Show in &gt; Properties</b> will open the
+ <a href="Tasks.html#Repository_Configuration">Properties view</a> showing the properties of the selected repository.
+ </p>
<p>
<br/>
</p>
@@ -1981,7 +2009,7 @@ Sein oder nicht sein
<img border="0" src="images/Egit-0.11-activate-task.png"/>
</p>
<ul>
- <li>When launching the commit dialog EGit will pre-populate the commit message using the commit message template. </li>
+ <li>When launching the commit dialog EGit will pre-populate the commit message using the commit message template.</li>
</ul>
<p>
<img border="0" src="images/Egit-0.11-commit-using-template.png"/>
@@ -1990,7 +2018,7 @@ Sein oder nicht sein
<a href="http://wiki.eclipse.org/index.php/Mylyn/User_Guide" target="egit_external">Mylyn User Guide</a> for more information how to work with tasks.
</p>
<h2 id="Viewing_Commits">Viewing Commits</h2>
- <p>EGit 1.0 added a Git commit viewer that allows commits to be opened in the Eclipse editor area.</p>
+ <p>The Egit commit viewer allows commits to be opened in the Eclipse editor area.</p>
<p>The EGit commit viewer displays the following commit information:</p>
<ul>
<li>Commit tab
@@ -2050,6 +2078,12 @@ Sein oder nicht sein
</ul>
</li>
</ul>
+ <h3 id="Checking_out_a_commit">Checking out a commit</h3>
+ <p>This checks out the commit displayed in the commit viewer. The commit will be checked out and
+ <a href="#&quot;Detached&quot;_HEAD">HEAD will become detached</a>.
+ </p>
+ <h3 id="Cherry_picking_a_commit">Cherry picking a commit</h3>
+ <p>Applies the change introduced by the commit displayed in the commit viewer on top of the currently checked out commit or branch.</p>
<h3 id="Opening_the_commit_viewer">Opening the commit viewer</h3>
<p>The commit viewer can be opened from the following places:</p>
<ul>
@@ -2061,9 +2095,12 @@ Sein oder nicht sein
<li>
<a href="Tasks.html#Finding_the_author_of_each_line_in_a_file">Blame annotation popup</a>
</li>
+ <li>
+ <a href="#Reflog_View">Reflog View</a>
+ </li>
</ul>
<h2 id="Searching_for_commits">Searching for commits</h2>
- <p>EGit 1.0 support searching for commits.</p>
+ <p>EGit supports searching for commits.</p>
<h3 id="Git_Search_page">Git Search page</h3>
<p>Commits can be searched from the
<b>Git Search</b> tab in the standard Eclipse Search dialog.
@@ -2104,7 +2141,7 @@ Sein oder nicht sein
</p>
<p>Selecting the
<b>Team</b> &gt;
- <b>Show Blame Annotations</b> action on file selections will open the editor and display an annotation ruler with commit and author information for each line in a file. Hovering over the ruler will display a pop-up showing the commit id, author, committer, and the commit message.
+ <b>Show Annotations</b> action on file selections will open the editor and display an annotation ruler with commit and author information for each line in a file. Hovering over the ruler will display a pop-up showing the commit id, author, committer, and the commit message.
</p>
<p>The look and feel of the blame annotation editor ruler can be configured from the
<b>Revisions</b> sub-menu available from the ruler context-menu.

Back to the top