EGit /用户指南

<EGit

内容

开始

概述

如果你新的Git或一般意义上的分布式版本控制系统,那么你可能会想读Git为Eclipse用户第一。 更多的背景和细节可以在网上找到的书箴Git

如果你是来自CVS,你可以找到常见的CVS工作流GitPlatform-releng / Git工作流

基本教程:项目添加到版本控制中

配置

确定自己

当存储库的历史是改变(从技术上讲,每当创建一个提交),Git跟踪用户创建的提交。 识别包含一个名称(通常是一个人的名字)和电子邮件地址。 这个信息存储在文件~ / .gitconfig在专用的钥匙。

EGit会问你这些信息当您创建您的第一个承诺。 默认情况下,这个对话框只显示一次,直到你创建一个新的工作区或勾选复选框“显示初始配置对话框”Git首选项页面:

Egit-0.11-initialConfigurationDialog.png

你也可以取消勾选“不要再显示这个对话框”如果你想以后再看到它。

而不是使用此对话框,您可以使用Git改变这种信息配置:

  • 点击首选项>团队> Git >配置
  • 点击新条目并输入键值对user.emailuser.name

Egit-0.9-getstarted-email.png

Egit-0.9-getstarted-name.png

设置Windows上的主目录

添加环境变量首页你的环境变量。

  1. 在Windows 7中,键入“环境”的开始菜单。
  2. 为您的帐户”选择“编辑环境变量。
  3. 在“用户变量”下,单击“新”按钮。
  4. 在name字段输入“家”。
  5. 输入“% USERPROFILE %”或其他路径值的字段。
  6. 单击OK,再好的。 你刚刚说在Windows上的主目录。
  7. 文件>退出,然后重新启动应用程序。

注意,如果您使用Cygwin,你应该已经有了首页集。例如,如果你安装CygwinC:\ cygwin弗雷德,你的用户名,那么Cygwin应该已经设置首页C:\ cygwin \ \弗雷德(或类似的)。 你可以通过输入验证回声%家里%在Windows命令提示符,或echo $ HOME在Cygwin壳。

EGit需要这条路径来查找用户配置(.gitconfig)。首页应该指向您的主目录。C:\Users\Tom确保正确的情况下!如。C:\用户而不是C:\Users可能会导致问题。

如果首页变量没有定义主目录将被连接计算HOMEDRIVEHOMEPATH

如果两个首页HOMEDRIVE没有定义列出就会被使用。

EGit如果显示一个警告首页不是显式地定义的。 记住,如果你家庭环境变量设置Eclipse运行时,你仍然会看到下面的警告。 你必须重新启动Eclipse,认识到房屋价值。

Egit no home.png

指出了系统范围的配置

如果你使用Git Windows作为EGit的同伴,确保EGit知道Git安装,这样就可以找到“系统设置”宽,如核心。 autocrlf。去设置,看下团队> Git >配置系统设置选项卡。

如果你选择其中一个选项时使用Git从命令行提示你安装Git窗户,然后系统的位置宽设置填充路径和一切都很好。 如果没有,使用Browse按钮来定位安装Git,例如C:\程序文件(x86)\ Git。

这个建议也适用于其他Git的用户包装材料,例如Git在Cygwin或TortoiseGit。

非windows用户理论上应该检查这个设置,但系统范围的设置通常不用于非windows平台。

创建存储库

  • 创建一个新的Java项目HelloWorld。 (在这种情况下,项目建成你的Eclipse工作区以外的)。

Egit-0.9-getstarted-project.png

  • 选择项目,单击文件>团队>共享项目
  • 选择存储库类型Git并点击下一个

Egit-0.9-getstarted-share.png

  • 配置Git存储库选择新项目HelloWorld

Egit-0.9-getstarted-create-project.png

  • 点击创建存储库初始化一个新的Git存储库HelloWorld项目。 如果你的项目已经存在于现有的工作树Git存储库存储库是自动选择的。

Egit-0.9-getstarted-project-created.png

  • 点击完成关闭向导。
  • 装饰文本”(主)”项目显示,这个项目跟踪在一个存储库分支机构和问号修饰符显示. classpath. project.settings文件尚未置于版本控制之下。

Egit-0.9-getstarted-shared-project.png

跟踪更改

  • 点击团队>添加索引对项目节点。 (这个菜单项命名添加Egit的旧版本)。
  • +decorator显示现在项目的文件被添加到版本控制中。
  • “本”文件夹标记为“忽略Git”,要么通过右键单击它并选择团队>忽略或通过创建一个文件.gitignore在项目文件夹中有以下内容:
/bin
  • 这排除了文件夹从Git跟踪文件的列表。
  • 添加.gitignore版本控制(团队>添加):

Egit-0.11-getstarted-ignore-added.png

  • 你可以设置你的Package Explorer过滤器以看到.gitignore在Package Explorer中显示。 进入过滤器,选择右边的向下箭头的Package Explorer选项卡显示视图菜单。

Pe downarrow1.png

  • 选择过滤器…从视图菜单中,您将看到Java元素过滤器对话框。 取消选择进入顶部显示的文件。 (时间)等.gitignore
  • 点击团队>提交在项目的上下文菜单。
  • 输入一个提交消息解释您所做的更改,第一行(其次是空行)将成为这个短日志提交。 默认情况下,作者和提交者是来自.gitconfig文件在您的主目录。
  • 你可以点击添加签署了添加一个签署了:标签。
  • 如果你提交另一个作者的变化可能改变作者字段给作者的名称和电子邮件地址。
  • 点击提交提交你的第一个变化。

Egit-0.9-getstarted-commit.png

  • 注意,提交的文件的decorator改变了由于您的提交。

Egit-0.9-getstarted-commited.png

检查历史

  • 点击团队>历史上显示从上下文菜单中检查资源的历史:

Egit-0.11-getstarted-history1.png

  • 创建一个新的Java类Hello.java并实现它。
  • 将其添加到版本控制和提交你的改变。
  • 提高你的实现和提交改善类。
  • 资源的历史现在应该显示2提交这个类。

Egit-0.9-getstarted-application.png

Egit-0.11-getstarted-history2.png

  • 单击比较模式切换按钮在历史视图。
  • 双击src / Hello.java在历史的资源列表视图中打开你的最后承诺的变化比较的观点。

Egit-0.11-getstarted-compare.png


恭喜,你已经掌握了你的第一个项目使用Git !

GitHub教程

创建本地存储库

在GitHub创建存储库

  • 创建一个新的存储库在GitHub:

Egit-0.10-github-create-repo.png

在下一个屏幕上可以看到您可能使用的url来访问你的新的存储库:

  • 点击SSH选择SSH协议。 它可以用于读写访问。
  • 点击HTTP选择HTTP协议。 它也可以用于读写访问。
  • 点击Git只读选择匿名git协议克隆。 这是最有效的协议git支持。 自git协议不支持身份验证通常是用来提供有效的只读访问公共存储库。

Egit-0.10-github-cloneurl.png

Eclipse SSH配置

  • 打开Eclipse首选项。 导航到,扩大网络连接选项并选择SSH。 确保你SSH2家是正确配置(通常这是~ / . ssh)和包含SSH2键:

Egit-0.10-ssh-preferences.png

  • 如果你还没有SSH密钥可能产生在这个对话框的第二个选项卡(密钥管理)。 用一个短语来保护你的私钥,看到更多的细节“工作与关键密码”
  • 上传你的公共SSH密钥GitHub帐户设置

进一步的信息关于先进SSH配置(如使用腻子或另一个SSH代理EGit)是可用的EGit FAQ(SSH)节

推动上游

  • 点击团队远程> >推…和SSH的URL复制粘贴你的新GitHub库。
  • 如果您是在防火墙不允许SSH流量,使用GitHub HTTPS URL而不是和提供您的GitHub用户和密码,而不是使用上传公共SSH密钥。 存储您的凭据到Eclipse安全存储点击存储在安全存储
  • 注意:许多HTTP代理配置为块HTTP URL包含用户名,因为披露用户名在HTTP URL被认为是一个安全风险。 在这种情况下删除用户名从HTTP URL和只提供用户现场。 它将发送一个HTTP头。

Egit-0.10-github-pushurl.png

  • 点击下一个在第一次连接接受GitHub的主机密钥。
  • 输入您的SSH密钥的密码并点击好吧
  • 在下一个向导页面点击添加所有分支机构规范你当地的分行名称映射到同一分支名称在目标存储库中(在一对一的基础上)。

Egit-0.10-github-push-refspec.png

  • 点击下一个。 推动确认对话框将会显示预览的变化将被推到目标库中。

Egit-0.10-github-push-preview.png

  • 点击完成确认你想要推动这些变化。
  • 在下一个对话框中报告推操作的结果。

Egit-0.10-github-pushresult.png

  • 您的浏览器指向GitHub库中看到你的新存储库内容已经到来。

Egit-0.10-github-pushed-repo.png


EclipseCon 2012 Git教程

找到所有练习和幻灯片在这里

遵循练习# 1准备Git教程。

概念

Git是建立在一些简单的和非常强大的想法。 了解它们有助于理解更容易git是如何工作的。

存储库

存储库或对象数据库存储所有对象组成的历史项目。 这个数据库中所有对象来确定一个安全20字节sha - 1哈希对象的内容。 这有几个好处:

  • 比较两个对象可以归结为比较两个sha - 1哈希表。
  • 由于对象名称是计算从对象内容以同样的方式在每一个git仓库,同一个对象将被存储在相同的名称在所有存储库包含该对象。
  • 从不改变一旦创建对象(明显因为改变内容意味着一个新的散列必须计算和分配新名称)。
  • 库腐败可以很容易地通过检查发现如果sha - 1对象名称仍然是对象的安全散列的内容。

Git有四个对象类型:

  • 一个Blob对象存储文件内容。
  • 一个树对象商店的目录结构和包含Blob对象和其他树对象连同他们的文件系统名称和模式。
  • 一个提交对象代表的快照目录结构时的承诺,并链接到它的前身提交对象形成一个非循环图的存储库存储库修改形成的历史。
  • 一个标签对象是一个象征性的命名链接到另一个存储库对象包含对象的名称和类型。 可选地,它还包含信息创建标签和其他签名信息。

对象存储在数据库. /对象目录中。 对象存储为松散的对象或者在单个的包装格式有效储存和运输。

信任

Git提供一个内置的信任链通过安全的sha - 1哈希表,允许它来验证如果对象从(可能不可信)获得源是正确的和没有被修改,因为他们已经创建。

如果你得到签名的标签如项目发布,您可以验证如薄铁片(项目领导的)公共签名密钥,git确保信任链包括以下几点:

  • 签署了标签标识提交对象。
  • 提交对象代表一个项目修订包括其内容和历史。
  • 提交对象包含blob树对象和其他对象的树代表项目的目录结构修改。
  • blob对象包含这个项目的文件内容修改。

所有涉及的对象名称可以使用sha - 1算法的一致性检查,以确保项目修改的正确性和整个历史是可以信任的。

指数

Git索引是一个二进制文件中存储. /索引目录包含一个排序的清单文件名称,文件模式和文件元数据用于有效地检测文件的修改。 它还包含blob sha - 1对象名称的对象。

它具有以下重要的属性:

  • 该指数包含所有必要的信息来生成一个唯一定义树对象。 如提交操作生成这棵树,将其存储在对象数据库,并将它与提交。
  • 树的索引可以快速比较它定义了与当前工作目录。 这是通过存储关于相关的附加元数据文件的索引数据。
  • 指数可以有效地存储信息之间的合并冲突树参与每个路径的合并,以便有足够的信息涉及到树木,使三方合并。

分支机构

在Git是一个名叫引用提交。 有两种类型的分支,即“本地”和“远程跟踪”分支,起到不同的作用。

当地的分支机构

每当一个(本地)存储库提交更改,创建一个新的提交对象。 没有任何其他方法,它将很难跟踪的变化存储库,特别是当其他提交被添加到存储库,例如由于从远程存储库更新或查看另一个承诺。

当地分支机构有助于这项任务通过提供一个(本地)的名字可以找到“当前”提交。 更改提交到本地存储库时,树枝会自动更新为指向新创建的提交。

此外,可以添加一个所谓的上游配置本地分支与远程存储库同步时是很有帮助的。

远程跟踪分支

远程跟踪分支时自动创建克隆和抓取从远程存储库。 远程跟踪分支的本地存储库总是对应于一个(本地)分公司远程存储库。 这样的一个分支的名字遵循一定的规范。

远程跟踪分支点一样的提交相应的分支在远程存储库中(当时的克隆/获取)。

远程跟踪分支可以用于自动创建上游配置当地的分支机构。

工作目录

工作目录的目录是用来修改文件提交。 默认情况下它位于高一个档次。 git目录。 制作一个新的提交一般包括以下步骤:

  • 检查分公司新提交应当依据。 这改变工作目录,它反映了修订的分支。
  • 在工作目录中所做的修改。
  • 告诉git这些修改(添加修改的文件)。 这个修改后的文件内容转移到对象数据库和准备树索引中提交。
  • 提交该指数的树准备到对象数据库。
  • 结果是一个新的提交对象当前分支的移动到新提交。

记录存储库的变化

你开始的新签出一个本地存储库的一个分支。 你想做一些改变和记录这些变化的快照存储库中当你达成你想记录状态。

工作目录中的每个文件可以是跟踪开始回升的:

  • 跟踪文件是那些在过去的快照或文件已被新进入指数。 它们可以未修改的,修改,或上演了
  • 开始回升的文件是所有其他文件(他们没有在过去的快照和尚未添加到指数)。

当你第一次克隆存储库时,工作目录中的所有文件跟踪未修改的因为他们刚签出,你还没有开始编辑它们。

当你编辑文件,git会认出他们修改关于最后一个承诺。 你阶段修改后的文件到该指数提交了变化。 可以重复循环。

这说明了生命周期:

Egit-0.9-lifecycle-file.png

任务

创建存储库

注意事项在Eclipse中使用Git存储库

的短篇小说

EGit设置Git存储库时,有两个建议的创建“生产性”(而不是“操场”)存储库:

  • 不要在Eclipse工作区中创建存储库。
    • 克隆或创建一个存储库时要小心。
    • 确保正确地使用Git分享向导。
  • 不要和一个Eclipse项目创建一个存储库作为根。
    • 确保正确地使用Git分享向导。

第一个错误发生在您指定一个工作区文件夹在克隆或创建一个存储库中。

两个错误会发生当你从一个Eclipse项目使用Git分享向导,您已经创建了手动在工作区中没有采取预防措施(向导已经固定在最新版本)。

下面你会发现这些建议的一些动机。

故事的时间越长
Eclipse工作区和存储库工作目录

Git存储库可以以不同的方式创建,例如通过克隆从现有的存储库,通过从零开始创建一个,或者通过使用EGit分享向导。

在任何情况下(除非你创建一个“裸”存储库,但这并不是这里讨论),新库本地硬盘上的一个文件夹中包含“工作目录”和元数据文件夹。 元数据文件夹是一个专门的子文件夹命名为“。 git”,通常被称为“.git-folder”。 它包含实际的存储库(即提交、引用、日志等)。

元数据文件夹对Git客户端是完全透明的,而当前工作目录是用来揭露核对库内容作为工具和编辑的文件。

通常情况下,如果这些文件是用于在Eclipse中,他们必须导入到Eclipse工作区以这样或那样的方式。 为了做到这一点,最简单的方法是检查。 项目文件的“进口现有项目”向导可以创建项目。 因此,在大多数情况下,存储库包含Eclipse项目的结构类似于这样的:

EGit-0.12-SetupRepo-RepoStructureTwoProjects.jpg

影响

上面有以下影响:

  • 它可能不是一个好主意让一个项目存储库的根文件夹。
原因是你将永远无法添加另一个项目存储库,作为。 项目文件会占据根文件夹,子文件夹您仍然可以添加项目,但这种项目嵌套是导致很多问题。 为了添加另一个项目,你必须移动项目的子文件夹来存储库和添加第二个项目作为另一个子文件夹来之前你可以提交这一变化。
  • 这是一个好主意保持您的Eclipse工作区以外的存储库。
有几个原因:
新存储库将考虑完整的Eclipse工作区文件夹结构(潜在的)内容。 这可能导致性能问题,例如在计算之前的更改(扫描完成。 元数据文件夹,例如);通常情况下,工作区将包含死文件夹(例如删除项目)的语义EGit不相关,但不能排除。
元数据(.)文件夹将孩子的Eclipse工作区中。 目前尚不清楚这是否可能导致不必要的Eclipse文件夹遍历的。
你可以很容易地破坏存储库通过破坏您的Eclipse工作区中。

创建一个新的空Git存储库

你可以先创建一个项目,然后分享它。 分享项目向导支持创建(参见Git存储库项目添加到版本控制中)。

您还可以创建一个新的空Git存储库从Git存储库视图(参见创建一个存储库)。

为多个项目创建一个Git存储库

你可以创建多个项目在一个常见的目录,然后创建一个对所有项目在一个公共存储库:

  • 创建一个Eclipse项目(例如,a,b,c)在一个常见的目录下(如/ /回购/例子)
  • 选择所有的项目(a,b,c),并在上下文菜单中单击团队> > Git共享项目
  • 新闻下一个
  • 选择所有的项目(a,b,c)
  • 向导会自动默认的存储库位置移动到父文件夹/ /回购/例子自多个项目已经被选中了
  • 点击创建存储库完成


从现有的Git存储库

为了使用Git存储库的内容在Eclipse工作台,所包含的文件和文件夹必须进口项目。 原则上,这可以通过使用导入通用的“新项目”或“进口… ”向导,因为一个Git存储库的工作目录是一个正常的本地文件系统的目录。 然而,新创建的项目仍将不得不手动共享与Git。 “从Git进口项目”向导将项目导入和分享,还提供了一些额外的便利。

开始导入向导

启动向导中单击从Git进口> Git >项目

如果你开始在一个干净的工作空间,第一页将显示一个空的列表:

Egit-0.9-import-projects-select-repository.png

在继续之前,您需要添加一个或多个Git存储库列表。 如果你已经存储库列表中,这一步是可选的。

克隆或添加存储库

有两种方法可以将Git存储库添加到列表:

  1. 克隆一个远程存储库
  2. 从您的本地文件系统添加现有的存储库
克隆存储库

第一个选项是使用如果你从一个远程存储库开始。 克隆操作将该库复制到本地文件系统。 克隆向导中点击开始克隆……。 克隆向导是更详细地描述克隆远程存储库。 在成功完成复制操作,新克隆存储库自动出现在列表中。

添加一个库

第二个选项是有用的,如果你已经有一个存储库在本地文件系统,例如因为克隆它之前,你从头开始创建或从其他地方复制它。 点击添加……,选择本地文件系统中的一个目录。 新闻搜索触发该目录中包含的一个运行着Git库的扫描。 如果找到Git存储库,他们会被列出,你可以选择存储库来添加:

Egit-0.11-import-projects-add-dialog.png

成功完成后,存储库列表应包含某些存储库:

Egit-0.11-import-projects-filled-list.png

从列表中选择一个存储库

现在,您可以选择一个存储库,然后单击下一个。 第二向导页面,您将决定如何导入项目。

导入项目

这个页面提供了一组单选按钮,允许你选择一个向导和一个目录树,选择允许您选择工作目录的一个文件夹。

Egit-0.11-import-projects-select-wizard.png

为项目导入向导

导入现有项目

如果这个单选按钮被选中时,向导将扫描本地文件系统. project发现文件和显示项目。 这是最舒适的,应该使用的解决方案. project文件签入到存储库。

限制范围为项目导入

在这种情况下,目录树底部是活跃。 你可以限制搜索. project文件通过选择一个文件夹在这棵树,否则存储库的完整的工作目录将被扫描。 在下一个页面上,发现项目的列表会显示(如果有的话)。 这非常类似于通用导入现有项目向导,但是有一些额外的过滤功能:

Egit-0.9-import-projects-select-projects.png

使用新项目向导

当选择此选项时,通用的“新项目”向导将打开。 “新项目”向导完成后,“从Git进口项目”向导将简历和协助分享您刚才创建的项目。

在这种情况下,底部的目录树是不活跃的,选择不相关的“新项目”向导。

一般项目导入

这个选项没有时是很有帮助的. project文件可用的也不是一个合适的“新项目”向导。 如果选择,向导将生成一个. project文件和存储库的项目文件夹的工作目录。 结果是一个“一般项目”。

默认情况下,新生成的项目将指向存储库的工作目录。 通过选择一些文件夹目录树的底部,你可以生成的项目文件夹。

点击下一个打开一个简单的对话框,输入一个名称和一个新项目目录:

Egit-0.9-import-projects-general-project.png

默认情况下,显示项目名称匹配的目录的名称。

使用远程存储库

克隆远程存储库

使用Git克隆向导可以克隆远程存储库使用不同的传输协议。

向导可以从“从Git进口项目”向导使用
文件>导入… > Git >从Git项目> > Next >克隆URI

或“Git存储库视图”(中描述管理存储库)使用克隆一个Git仓库工具栏按钮或视图菜单。

库中选择

在向导的第一个页面上输入的位置远程存储库:

Egit-0.9-clone-wizard-url-page.png

  • URI-完整的URI的远程存储库或文件系统上的路径。 这个字段与其他字段自动同步。
    请注意,您可以使用本地文件…按钮来浏览本地目录和URI字段提供了内容帮助提供以前的值
  • 主机——远程主机的名称或空如果克隆的文件系统。
  • 库路径远程存储库——路径或文件系统。
  • 协议——下面描述的协议之一。
  • 港口——端口号。
  • 用户——用于身份验证的用户名。
  • 密码用于身份验证的密码。
  • 存储在安全存储密码保存在Eclipse是否安全的存储。

支持以下协议:


注意:如果你是在防火墙后面,您可能需要配置您的代理设置(首选项>一般>网络连接)。 许多HTTP代理配置块的url包含用户名和/或密码)等。http://fred:topsecret@egit.eclipse.org/egit.git因此建议使用用户,密码字段向导页面的底部,凭证将传输HTTP头。

分支机构选择

在下一个页面上选择分支机构应当从远程存储库:克隆

Egit-0.11-clone-wizard-branch-page.png

如果你不确定你需要哪些部门,简单地点击“选择所有”。

您可以过滤树枝由输入他们的名字使用列表上方的文本控件。 但是请注意,树枝,总是会检查列表所示,即他们不会被过滤。

当地的目的地

在下一个页面上定义要存储在本地文件系统上的存储库和定义一些初始设置。

Egit-0.9-clone-wizard-destination-page.png

  • 目录——目录将包含Git存储库。 它将由向导创建如果它还不存在。
  • 最初的分支——选择当地分支将被创建,最初签出。
  • 远程名称——定义一个远程存储库的名称。 默认值是“起源”。

默认的根路径存储Git存储库可以配置的偏好团队> Git >默认存储库文件夹

你可以按完成在这个页面或新闻下一个如果你正在与Gerrit代码评审你想配置相应的存储库。

克隆从特定的位置

EGit的克隆向导可以扩展其他插件为了寻找特定的后端主机上存储库git存储库。 目前这样的一个扩展是用于Gerrit Github,很快就可以。 都需要安装相应的Mylyn连接器。 Gerrit Mylyn连接器扩展然后还将配置的远程存储库Gerrit一起工作。 这也可以从Git存储库视图或更改完成后,明白了Gerrit配置

当你安装了这样的一个扩展,克隆向导打开时,选择页面,你可以选择不同的存储库克隆来源:

Egit-1.3-CloneSources.png

推动其他存储库

推动上游

如果你正在与一个当地分支机构有一个所谓的“上游的配置”,最方便的方式推动依赖于这个上游配置。

通常本地分支创建基于远程跟踪分支。 由于远程跟踪分支与远程和远程包含所需的信息访问相应的远程存储库,可以自动创建这个上游配置(见在创建本地分支分支的更多信息)。

当推动上游从本地分支,进一步推进不需要参数,因此可以不执行基于存储上游配置显示另一个对话框。

为了推动上游,右键单击项目并选择团队>推动上游或者右键单击并单击存储库中存储库视图推动上游。 还有一个动作中可用Git命令组

推动将执行后立即选择行动。 一旦完成后,会显示一个确认对话框显示的信息将数据和/或错误消息:

Egit-0.11-PushResultDialog.png

配置上游推

上游推可以配置使用“配置… ”按钮确认对话框(见上图)或通过右击并选择一个项目团队远程> >配置推动上游……

配置的配置对话框将显示推uri映射和相应的分支(RefSpecs):

Egit-3.1-ConfigurePushToUpstream.png

分为三个主要部分所示的对话框。 在上部,当前签出的分支和远程信息后显示。 通常本地分支创建基于远程跟踪分支,自动配置的本地分支跟踪这个远程跟踪分支。

在这个特定的例子中,有一个警告消息,有几个分支,使用远程命名“起源”。 这意味着将配置的变化会影响这些分支,不仅分支的分支领域。 移动你的鼠标在工具提示中显示这些分支的警告。

URI组包含两个控件,一个URI字段和推动URI列表。 如果列表为空,URI URI字段将被用于推动,如果至少一个条目在推动URI列表,列表中的URI将使用。 应该注意的是,如果将URI列表为空和URI是改变在这个对话框中,新的URI还将用于拉,所以应该小心当这样做。

RefMapping组允许指定一个或多个RefSpecs(见Refspecs为推动)。

“添加”将打开一个向导,帮助小RefSpecs的创建。 您还可以将RefSpec从剪贴板粘贴到列表中。

单击“高级”控制将显示/隐藏“编辑(高级……) ”按钮,允许更复杂RefSpec编辑相似推动向导在下面。

降低按钮栏中的按钮允许您保存您的更改并立即进行推动,保存更改没有抓取,管制(推不保存配置),恢复您的更改和取消。

直接推

或者,您可以使用直接推动支持在推动一个偏远的规范。

推动向导

最强大的(但也最复杂的)方法是使用推向导
团队远程> >推…

将URI
  • 如果您已经配置了推动规范库视图中您也可以选择使用下拉列表中配置的远程存储库。 的完成按钮将被激活,如果这个偏远的推动规范是正确配置(即至少都有一个URI和裁判规范。
  • 否则,单击自定义的URI并输入上游的URI库要推。

Egit-0.9-push-wizard-destination-page.png

推动裁判规范

另请参阅Refspecs更多的解释。

点击下一个
如果这是你第一次通过ssh连接到这个存储库必须接受远程的主机密钥存储库

Egit-0.9-push-wizard-accept-hostkey.png

如果您的ssh密钥保护的密码(建议)你必须进入这里

Egit-0.9-push-wizard-ssh-passphrase.png

点击添加所有分支机构规范

Egit-0.9-push-wizard-refspec-allbranches.png

声明,这是一个方便的方式你想当地的分行名称映射到同一分支上游库上的名字你想推动变化。

点击添加所有标签规范当地标签1:1映射到标签库中你想努力。

如果你想当地分支机构映射到那些在上游库中以不同的方式你可以定义在以下方法更详细的映射规范

  • 输入源和目的地ref或从下拉列表选择已经存在的分支
  • 点击添加规范

这将把新定义的映射列表规范推动

其他常见推动规格:

  • 你可以如地图refs /头/ *refs /头/乔/ *如果你想名字树枝你根据你的昵称。 这是有用的,如果多个用户想发表他们的当地分支在个人分支共同使用的公共存储库。
  • 另一个常见的映射是映射源ref到目的地refs /头/主人。 这意味着你要你当前的地图(这可能目前如任何本地主题分支)上游主分支。
删除裁判规范

删除一个裁判在目标存储库从下拉列表中选择要删除的裁判远程ref删除并点击添加规范。 这将创建一个对应的条目规范推动列表。 或者你可以输入要删除参考文献的规范,这也可以使用通配符。 将删除裁判规范将在目标库中删除匹配的参考文献。

Egit-0.9-push-wizard-delete-refspec.png

矛盾推动裁判规范

如果你添加多个相互冲突的裁判规范他们会用红色标注的,解决这个问题通过删除或编辑冲突规范。 还可以编辑规范就地在列表中规范推动

Egit-0.9-push-wizard-refspec-conflict.png

按确认

点击下一个

这将打开推确认对话框显示预览更改将被推到目标库中。 如果这个不匹配你的期望回来并相应地纠正你把规格。

  • ref更新承诺的范围被推将所示格式< SHA1-from > . < SHA1-to >如。d97f5a2e . . adfdbfd2意味着所有提交之间d97f5a2eadfdbfd2将推动。
  • 对参考文献中尚不存在目标库中(分公司)(新标签)会显示出来。
  • 这将删除参考文献(删除)显示。

Egit-0.9-push-wizard-confirm-push.png

  • 选择推动只有远程不改变同时参考文献复选框,如果你想确保你所看到的在这个预览也得到推动这些变化的时候。
  • 选择显示最终报告对话框只有当它不同于确认报告复选框之后如果你只想得到一份报告执行推动如果结果不同于这个预览。
将结果报告

点击完成

根据您选择的选项将结果报告对话框显示。 它显示的列表提交推到远程。

Egit-3.1-PushConfirmationDialog.png

在盒子底部显示确认消息从远程服务器。 在任何错误的情况下你会发现从远程服务器错误消息。 看到消息对于一个给定的列表条目列表中选择它。

点击好吧关闭对话框。

获取从其他仓库

获取从上游

如果你正在与一个当地分支机构有一个所谓的“上游的配置”,最方便的方式获取依赖于这个上游配置。

当地分支机构通常是基于远程跟踪创建分支。 因为远程跟踪分支与远程和这个远程包含所需的信息访问远程存储库,可以自动创建这个上游配置(见在创建本地分支分支的更多信息)。

当从上游抓取,这个持久化配置可以用来获取自动而不需要提供进一步的参数在一个对话框。

为了获取从上游,点击从上游Team >获取在一个项目或点击获取从上游在存储库中存储库视图。 还有一个动作中可用Git命令组

获取将选择行动后立即执行。 一旦完成后,会显示一个确认对话框显示所获取的数据信息和/或错误消息:

Egit-3.1-FetchResultDialog.png

配置获取从上游

上游获取可以配置使用“配置… 在确认对话框”按钮(见上图)或通过点击从上游团队远程> >配置获取…上一个项目。

配置对话框将显示配置获取URI和分支映射(RefSpecs):

Egit-3.1-ConfigureFetchFromUpstream.png

分为三个主要部分所示的对话框。 在上部,当前签出的分支和远程信息后显示。

可以使用URI字段添加/改变获取URI。

RefMapping组允许指定一个或多个RefSpecs(见Refspecs为获取)。

“添加”按钮将打开一个向导,帮助小RefSpecs的创建。 您还可以将RefSpec从剪贴板粘贴到列表中。

单击“高级”控制将显示/隐藏“编辑(高级……) ”按钮,允许更复杂RefSpec编辑相似获取向导

降低按钮栏中的按钮允许您保存更改并立即取回,保存更改没有抓取,管制(获取不保存配置),恢复您的更改和取消。

直接获取

抓取的另一种方法是使用直接获取支持获取指定远程。

获取向导

最强大的(但也最复杂的)方法是使用Fetch向导
团队>获取…

  • 如果你已经在仓库里取规范配置视图还可以选择使用下拉列表中配置的远程存储库。 的完成按钮将被激活,如果这种远程配置正确获取规范(即至少都有一个URI和裁判规范。

Egit-0.9-fetch-wizard-source-page.png

  • 否则,单击自定义的URI并输入上游的URI库你想获取变化。

Egit-0.9-fetch-wizard-source-url-page.png

获取参考规范

另请参阅Refspecs更多的解释。

点击下一个
点击添加所有分支机构规范

Egit-0.9-fetch-wizard-refspec.png

宣布这是一个方便的方式要映射上游库中的分支的名字你想获取变化从1:1到当地分支的名字相同。

  • 点击编辑字段目的地裁判连接部分和替换choose_remote_name与上游的符号名称库你要取回。
  • 默认的远程存储库存储库的名称已被克隆起源。 这个偏远的主人默认地图refs /头/主人refs /遥控器/产地/主人
  • 如果你如想另外跟踪分支从乔的库在你的本地存储库映射库分支refs /头/ *以下跟踪分支refs /遥控器/乔/ *
  • 取消选择强制更新如果你想只允许快速更新,选择此选项,如果你也想让non-fast-forward变化。
  • 点击力更新所有参所有规格设置强制更新选项
  • 点击删除所有规格从列表中移除所有规格规范获取
  • 点击添加所有标签规范地图标记标签库中你想获取从1:1到当地的标签。

如果你想分支或标签在上游库映射到本地分支机构以不同的方式你可以定义在以下方法更详细的映射规范

  • 在源库输入源(ref)和目的地ref(跟踪分支或标记在本地存储库)或从下拉列表选择已经存在的分支
  • 点击添加规范

这将把新定义的映射列表规范获取

获取结果报告

点击完成

Egit-3.1-FetchWizardResult.png

获取结果对话框显示。

  • ref更新提交已获取列表将显示。
  • refs之前不存在的本地存储库(分公司)(新标签)会显示出来。
  • 对参考文献已被删除(删除)显示。


从上游新变化分支

  • 在Package Explorer中右键单击项目并选择团队>拉或者右键单击视图并选择在Git存储库存储库将新变化从上游部门跟踪你当地的分支。 这同样适用如果资源选择从多个存储库。
  • 当你创建一个本地分支基于远程跟踪分支EGit可以配置,以便后续跟踪关系拉将取回,然后合并或者变基(根据配置的跟踪关系)的变化追踪上游分支;看到分支获取详细信息。

特别选择的上游部门拉还没有得到EGit的支持。

可用的替代方案包括:

  • 运行git拉eclipse(但从外面当心在Windows上)
  • 如果你没有地方改变或想抛弃你的本地更改,使用团队>重置…



使用Gerrit

如果你正在与Gerrit(http://code.google.com/p/gerrit/),EGit允许您方便地推动和获取更改Gerrit服务器。

使Gerrit库

Gerrit操作不会出现在任何菜单除非你先配置存储库。 为此,打开查看和浏览到Git存储库远程表示您想要使用Git存储库服务器并选择Gerrit配置…

推动改变Gerrit代码检查服务器

右键单击并选择一个项目团队远程> >推动Gerrit……或者右键单击并选择存储库中的存储库节点视图推动Gerrit……

会出现一个对话框,让您选择或输入一个URI和分支机构名称:

Egit-3.1-PushChangeToGerritDialog.png

  • 在URI组合,选择或输入URI指向Gerrit实例;组合预先填充任何远程对你目前的存储库中定义的所有URI;此外你可以输入任何URI进入这一领域
  • 在Gerrit分支字段中,输入分支选择评审队列的名称更改将被推到

的对话框也提供一个内容辅助Gerrit分支。 只需按下Ctrl + Space”来激活这个(咨询时出现的提示悬停在附近的小灯泡装饰Gerrit分支领域)。 远程跟踪分支将显示为当前的存储库。 注意,这个内容帮助过滤,为了看到所有提案,您需要确保有Gerrit分支领域空之前请求协助的内容。

在点击完成,当前签出的提交将被推到指定的Gerrit分支。 同时,URI和Gerrit分支值将被铭记,建议当以后再打开对话框。

这允许更大的灵活性在处理不同Gerrit并行分支(例如开发和热修复补丁之间频繁切换)。

编辑一个改变

当一个变化是推动Gerrit和评论者建议做一些改进,一个新的补丁集的变化必须上传。 首先,编辑提交(s):

  • 如果你有一个提交对应一个改变,你可以修改提交(请参阅修改提交)。
  • 如果你有多个依赖提交和需要编辑提交除了最后一个,你可以做一个交互式变基(见交互式变基)。 另外,查看提交你想编辑,修改,然后上摘取后提交(这对你来说是什么互动变基)。

然后再次推到相同的分支。 Gerrit会检测到你更新现有的变化,将添加新补丁集。

抓取一个更改服务器从Gerrit代码评审

右键单击并选择一个项目团队从Gerrit >远程>获取…或者右键单击并选择存储库中的存储库节点视图获取从Gerrit…

会出现一个对话框,让您选择或输入一个URI和变化以及一些额外的选项:

Egit-3.1-FetchChangeFromGerritDialog.png

  • 在URI组合,选择或输入URI指向Gerrit实例;组合预先填充任何远程对你目前的存储库中定义的所有URI;此外你可以输入任何URI进入这一领域
  • 在变化的领域,你必须输入的姓名更改;你可以把这个值从Gerrit Web UI,使用下面描述的内容帮助,或构建名称使用以下模式:
    “refs /变化/”+(从改变号码最后两位数字)+ / +(变化)+ / +(修订号)
  • 在“操作执行后取回”你可以决定要做什么改变后获取;您可以创建和检出一个分支指向变化,创建和结账标记指向变化,或者仅仅是结帐的变化(从而使头分离);取回后最后选择什么也不做,但你将能够找到提交有关改变FETCH_HEAD(去仓库查看和找到FETCH_HEAD存储库的引用节点下,明白了检查引用)。
    分公司的名称或标签建议的对话框,但可以根据需要重写。
    自删除标签在EGit目前不支持,我们建议使用本地分支机构而不是标签。 自库视图允许集团分支机构层次分层次使用“/”作为分隔符,建议名称可以非常方便的在处理大量的变化。

而不是乏味的复制粘贴或手动输入变化的ID,对话框也提供了一个内容辅助功能的改变。 只需按下Ctrl + Space”来激活这个(咨询时出现的提示盘旋在附近的小灯泡装饰变化字段)。 Gerrit服务器将联系和所有可用的变化将获取和内容帮助对话框所示:

Egit-0.11-ContentAssistGerritChange.png

与输入过滤列表的变化。 在选择的变化内容帮助,改变字段将充满了正确的信息。

您还可以复制下载命令从Gerrit WebUI打开之前到剪贴板获取从Gerrit…向导。 这将自动填充对话框的值需要获取这种变化。

Egit-3.1-GerritDownloadCommand.png

使用Gitflow

如果您使用的是Gitflow(http://nvie.com/posts/a-successful-git-branching-model/),EGit允许您使用Gitflow操作,管理功能,发布和热修复补丁分支。

使Gitflow库

Gitflow操作不会出现,除非Gitflow选择存储库配置。 为此,打开上下文菜单在Git存储库存储库视图并选择Git Init流Egit-4.0-git flow init-repository node right click.png

你可以跳过这一步如果存储库已经被另一个客户机配置为Gitflow。

开始一个特性/释放/热修复补丁

右击存储库,选择Git流,并选择适当的启动命令。

Egit-4.0-git flow-repository node right click.pngEgit-4.0-git flow submenu-repository node right click.png

会出现一个对话框,允许您输入一个名称为Gitflow分支,自动添加正确的前缀。

从提交除了头开始释放

去EGit历史视图,右键单击提交你想开始释放。在上下文菜单中,去Git流,并选择开始释放提交< sha1 >Egit-4.0-git flow start release from history view context menu.png

检查存储库的状态

标签装饰

标签装饰展示Git-specific Git版本控制下的信息资源。 他们出现在所有视图显示模型对象,像Package Explorer,Project Explorer,导航,层次结构视图。

Git标签装饰可以开启全球偏好菜单(Window > Preferences)一般>外观>标签装饰和更详细的设置可以修改在偏好团队> Git >标签装饰

有两种不同类型的标签装饰:文本装饰品装饰和图标。

文本装饰

文本装饰出现在左边或右边的文本标签。 他们可以在首选项对话框中配置团队> Git >标签装饰文本装饰选项卡。 例如,默认是一个肮脏的资源>左边的名字。

这些都是默认设置:

01-TextDecorations.png

对文件和文件夹的变量“名称”,“脏”“了”“脏”“了”旗帜,如果他们是真的,冒号后的文本显示。

项目有额外的变量“库”,“分支”“branch_status”。 的“库”变量显示库的名称。

“分支”变量显示当前签出的分支机构的名称。 如果没有签出分支,装饰显示提交的缩写名称(前七个字符后跟省略)。 如果标签和/或远程分支机构是指向这个承诺,“猜测”启发式应用也显示这个信息:标签优先于远程分支,如果一些标记应用,显示最新的一个。 如果有几个远程分支机构或标签没有修改日期,然后应用字母排序,最后一个。 例如:检查提交e49f576……指的是标签v.0.7.1的库egit:

03-ExampleDecoration.png

“branch_status”变量显示当地分支的状态相比remote-tracking分支上游设置为:

  • ↑N -当地分支机构N提交尚未在remote-tracking分支。 这可以解读为“N致力于推动”。
  • ↓M - remote-tracking分支提交不上当地的分支机构。 这可以解读为“M提交合并/变基”。
  • ↑↓N M -当地分支和remote-tracking分支已经背离了(两个以上应用)。
  • ——空如果当地分支和remote-tracking分支有相同的状态。

可以使用状态变量与一个领先的空间是这样的:{ branch_status }。 这个结果在空间添加只有当状态不是空的。

图标装饰

图标装饰出现在右下角的图标显示在前面的标签。 他们可以在首选项对话框中配置团队> Git >标签装饰在选项卡图标装饰

这些是默认的装饰:

02-IconDecorations.png

  • 脏(文件夹)——至少一个文件文件夹下面是肮脏的,这意味着工作树的变化,无论是在索引中还是在存储库中。
  • 跟踪——资源是Git存储库,因此置于版本控制之下。
  • 开始回升的——资源还不了解Git存储库和不会被版本控制,直到显式地补充道。
  • 忽略了- Git团队资源被忽略的提供者。 偏好设置下团队>忽视资源、“派生”标记和设置.gitignore文件被考虑。
  • ——资源工作树的变化,无论是在索引中还是在存储库中。
  • 上演了——资源变化已添加到索引中。 注意添加更改索引目前可能只有在提交对话框中通过资源的上下文菜单。
  • partially-staged——资源添加到索引和额外的变化在工作树中,无论是达到指数还是已经提交到存储库。 看到部分暂存从Git分期视图怎么做。
  • 添加——库中资源尚未达成任何提交但刚添加到Git仓库为了将来被跟踪。
  • 删除——资源是删除从Git存储库了。
  • 冲突——一个合并冲突存在的文件。
  • assume-valid——资源“假设不变”标志。 这意味着Git停止检查工作树文件可能的修改,所以您需要手动设置一些告诉Git当你改变工作树文件。 也看到假设不变的行动

提交对话框

总结所有修改跟踪文件的状态显示在提交对话框。 通过双击文件更改提交比较对话框将显示。 EGit目前总是提交工作的内容树(对应于git commit -在命令行)比较对话框将比较工作树最后提交。

比较的内容

在日常工作中你会经常想看到你最后的承诺之间的变化,该指数,当前工作树。 为了做到这一点,选择一个资源(项目、文件夹或文件)在project explorer或导航器,右键单击下一个动作

分析具体的内容提交您应该使用历史视图支持这个任务更好,看到任务吗检查提交

比较编辑器和同步视图

如果你使用任何的子菜单操作在一个单一文件,比较编辑器将显示,否则(因为EGit 3.1)同步视图将被打开,允许您浏览变化;通过双击更改文件在这个视图中,比较编辑器将打开这个文件。 在Synchronize视图工具栏可以选择你想要的Sychronize模型用于更改你检查。

Egit-3.1-SynchronizeSwitchModel.png

比较工作树,最后提交

资源在当前工作目录的区别,最后提交当前分支可以从上下文菜单与>修订。 这个功能也可以在提交对话框。 双击一个条目在提交对话框中打开一个对话框进行比较。

比较工作树索引

当前工作树,该指数之间的差异(基于当前选中的资源)可以从上下文菜单与> Git索引

比较工作树的一个分支,一个标签或一个参考
  • 选择一个资源
  • 右键单击与>分支,标签,或引用…
  • 选择一个分支,标签或引用
比较工作树与任何承诺
从project explorer:
  • 选择一个资源
  • 右键单击与>提交…
  • 选择一个提交的提交图
仅从历史视图(文件):
  • 在package explorer中选择一个文件
  • 右键单击团队>历史上显示与历史>…
  • 在提交图选择提交
  • 从上下文菜单中选择与工作树
  • 这将打开一个对话框显示比较之间的变化选择提交和当前工作树
比较两个提交
  • 在Package Explorer中选择一个资源
  • 点击团队>历史上显示与历史>…(后者仅供文件)
  • 在提交图选择两个提交
  • 右键单击相互比较
  • 这将打开一个对话框显示比较两者之间的变化选择提交
  • 您还可以打开一个Git树视图中单击右键进行比较在树相互比较
比较指数和头部或任何其他承诺

你可以使用Staging视图比较指数和头部。 双击一个文件“上演了变化”窗格中显示比较其索引版本和版本。对比指标,另一个还没有实现。


与分支(同步)

工作树的区别(包括没有提交变化)和一个分支或标签可以查看(因为EGit 3.1)通过选择项目(s)你想比较和点击与>分支,标签或引用。 结果是过滤您选中的资源开始前比较。

你也可以与一个分支通过单击动态菜单团队>同步在一个项目和选择裁判你想同步工作树。 如果Git存储库包含多个Eclipse项目选择一个项目,是足够的同步视图还包括所有其他项目。

Egit-1.0-synchronize-dynamic.png

如果你想与裁判不同步动态菜单中列出的点击团队>同步>其他……。 然后在同步向导中点击你想要到的目的地列库同步并选择裁判你想比较。

Egit-1.0-synchronize-custom.png

当点击“包括本地未提交的更改相比”地方,没有举行变革和已经变化会比较所示。

还可以比较多个存储库。 在本例中为每个库裁判在同步向导中选择你想比较。

Quickdiff

而不是使用一个比较编辑器你可以启用快速diff支持看看文本编辑器内的变化。
这个特性可以通过启用一般> >文本编辑器编辑>快速Diff首选项页面:

04-QuickDiffPreferences.png

不同的注释将被显示在编辑器的左边:

05-QuickDiffInEditor.png

如果你移动你的鼠标注释你看到的内容版本比较:

06-QuickDiffInEditorPopup.png

默认条件下,对头部的比较。 你可以确定这个版本比较,所谓quickdiff基线,从上下文菜单中提交的历史视图(>历史上显示)。 有三个菜单项:

  • 快速Diff - >重置基线首先父母的头上——比较第一头之前提交。
  • 快速Diff - >重置基线——比较。
  • 快速Diff - >设置为基准——比较选定的提交


检查提交

检查一个给定的提交

  • 在package explorer中从上下文菜单中选择团队>历史上显示
  • 选择您想要检查的承诺

Egit-3.1-ViewDiffInHistory.png

视图Diff提交

历史视图显示diff在左下方面板中。 右下窗格中选择一个文件显示了这个文件的差异。

显示的内容提交

的行为在右下窗格中双击一个文件取决于比较模式切换按钮的状态。 如果是,比较编辑器将打开,比较当前提交的文件内容与祖先提交内容,如果是,将打开一个编辑器显示当前提交的文件内容。

提交更改

修改项目坚持git git版本控制下通过提交历史。 从国家签出从git存储库修改您的项目直到你已经达到你满意,然后提交所有这些变化到存储库作为一个单一的提交。 每个提交代表一个良好定义的所有文件的快照存储在存储库中。

修改的内容

修改一个项目已与Git修改或删除文件共享在Eclipse中或直接在文件系统。 不需要提前告诉Git关于这些操作。 新文件应该版本控制必须显式地将Git版本控制:

  • 点击团队>添加在文件的上下文菜单

或者你可以显示无路径的文件在提交对话框和检查显示无路径的文件复选框来选择包含提交。

标签修饰符,如在Package Explorer视图中,显示:

  • 无路径的文件尚未得到git版本控制(标有“?”)
  • 文件已添加(标有“+”)
  • 修改的文件(标有“>”前的文件名)

详情见标签装饰

这里有一个例子在Package Explorer中:

  • 提交文件
  • 工作树中的一个文件修改但尚未上演了接下来的提交
  • 修改文件的修改已经上演了接下来的提交
  • 文件已被新举行了首次加入下一个承诺
  • 下一个文件不是git版本控制

Egit-0.9-label-decorators.png

提交

承诺与分期的观点

创建提交与EGit的首选分段视图因为它总是显示当前git状态为选定的存储库,并允许阶段(添加git索引)和unstage(从git索引删除)修改文件。 双击一个文件中Unstaged变化面板对git索引相比,双击一个文件中阶段性的变化面板比较它的索引版本和头部。 分段视图中您可以编辑提交消息不断,因为它是一个视图,而不是模式编辑器。

Egit-3.1-StagingView.png

承诺使用提交对话框

提交更改点击团队>提交…在资源的上下文菜单项目。

Git跟踪所有更改整个存储库获取所有版本控制文件的修改库中没有关于如果这些文件驻留在相同的Eclipse项目。

一旦你已经引发了提交提交对话框将会弹出

Egit-0.9-commit-dialog.png

选择您想提交的更改,输入提交消息并创建提交,出版社按Ctrl + Enter(命令+输入在Mac OS X)提交消息文本字段,或点击提交


提交消息

临时视图或提交对话框中指定提交消息描述变化。

是一种很好的做法开始与短消息第一行总结的变化紧随其后的是一个空行,然后消息体。 为了确保这些消息还git命令行工具可以格式化线不能格式化太宽(这是由灰色垂直线表示)。

Egit-0.9-commit-dialog-spell-quickfix.png

提交消息的文本是由Eclipse拼写检查器检查错误。 拼写检查器可以通过Eclipse配置首选项>一般> >文本编辑器编辑>拼写。 新闻Ctrl + 1打开快速修复,可以帮助修复拼写错误。

Egit-1.2-commit-dialog-path-assist.png

提交消息编辑器支持文件名的内容帮助提交的文件部分所示的对话框中,按下Ctrl + Space,可以激活。

脚注标记
最后一段的提交消息(即最后一个空白行)后,可选页脚标签可能遵循:

Bug: 3176
Change-Id: I267b97ecccb5251cec54cec90207e075ab50503e
Reported-by: Joe Developer <joe@dev.org>
Signed-off-by: William Shakespeare <will.from@the.past>

这些标签的语义具体项目或工具

  • 如果有缺陷追踪系统中的一个条目为变更提交,这是一个好主意来添加在这里作为一个错误标签
  • Gerrit代码评审使用Change-Id:页脚关联在审查过程中变化发展的不同patchsets向终于接受了补丁。 生成一个Gerrit Change-Id点击计算Change-Id Gerrit代码评审;上生成的ID将被提交,在那之前一个空Change-Id显示为一个占位符。 EGit配置参数gerrit.createchangeid在提交对话框中设置为true相应的复选框总是预选。 该参数可以设置库级、系统级和用户级。 看到存储库配置为更多的信息。
  • 签署了:页脚使用许多项目创建一个正式记录的声明签署作者贡献项目的许可下的变化和知识产权规则。 这样的IP出处代码库项目的发展可以捕获技术水平。 看到如开发人员的原产地证书Linux内核使用的项目。 如果EGit的偏好插入签署了团队> Git >提交对话框在提交对话框中设置相应的复选框总是预选。

选择修改提交

  • 当你点击提交分段视图只有上演的变化将被提交。 本地git命令行以同样的方式工作。 所有unstaged变化并保持在您的工作目录将保持不变。 这个功能通常用于单独的修改做一套文件到不同的提交。
  • 当你点击提交提交对话框您可以使用前面的复选框每个文件决定如果你想包括变更到新提交。 如果你清楚前面的复选框一个文件,更改这个文件将不会被包括在提交。 本地文件在您的eclipse工作区中仍然包含修改给你机会与后续提交提交这些更改。

一个例子:想象自上次提交你有固定一个bug。 java和B.java你已经添加了一个新的方法。 这两个修改在逻辑上是相互独立的,因此您可能需要提交两个独立的承诺。 在这种情况下,你初启提交,取消选择B。 java设置的承诺文件并指定A.java只提交消息描述错误修复。 第一次提交成功后您就叫再次提交,即将到来的对话框将B.java你剩余的变化。 现在你指定一个提交消息描述的方法,完成第二次提交。

提交对话框中的新文件添加到项目,没有显式地添加到版本控制(见“修改内容”)将提交对话框中列出的如果你选择“显示无路径的文件”复选框。 如果你选择前面的复选框列表中的这些文件会被添加到存储库,并承诺一旦你按提交按钮。 由一个排除的文件.gitignore文件将不会显示在这里。 如果你没有其他的变化比这种无路径的文件存储库中的复选框显示无路径的文件默认选中。

修改提交

如果你知道你错过了什么当提交一个改变你可以解决这个问题:打开分段视图或再次提交对话框,指定当前承诺将“修改”之前的提交当前分支。 新提交将取代前一个。 这个功能通常是用于纠正不正确的提交之前发布到其他存储库。

注意:不修改提交,如果他们已经被发布到一个共享库,因为这可能会打扰别人,如果他们已经更改基于出版的改变。

修改的例子:
想象你有更改一个文件包含一个错字

EGit-Typo.png

提交后改变你检测一个错字。 为了纠正这种错误和相应的提交修复源文件中的错误

EGit-Corrected.png

然后再打开临时视图或提交对话框和选择修改之前的承诺工具栏图标。

EGit Amend Commit Button.png

你之前提交的提交消息(一个你想替换)然后进入“提交消息”字段。 这不仅能让你有机会纠正错误版本控制文件的内容还应纠正错误(如输入错误)在提交消息描述您所做的更改。

作为一种替代方法来修改你可以提交修正版本作为后续提交。 但是第一个提交包含错误是毫无用处的,为了不杂乱的历史与不必要的提交你的项目你应该修改提交。

请注意,修改提交已经发布到其他存储库可能会引起麻烦。 一旦你将提交到远程存储库或你的本地存储库被别人克隆,你应该非常小心修改提交。 在这种情况下发布第二个提交纠正第一个可能是一个更好的解决方案。 否则通知所有其他你修改发布提交,这样他们就可以做出相应的反应。

恢复的变化

恢复工作树的变化

在Git索引替换为文件

变化还没有承诺,没有了可以恢复一组选定的文件。选择文件(s)并单击Package Explorer或类似的视图替换为在Git索引>文件

替换为头

点击替换为>头替换所选文件的版本。 您还可以使用重置为与选择有力地重置整个工作树的存储库负责人提交的状态(参见下面的“重置当前头”)。 这个操作将恢复工作树中的所有更改和索引。

替换为分支,标签或引用

点击替换为>分支,标签或引用替换所选文件版本对应的一个分支,标签或引用。

替换为提交

点击替换为>提交替换所选版本选择提交相应文件。

与先前的版本替换

变化已经上演,甚至承诺可以“恢复”,取而代之的是一个从以前版本提交。 在Package Explorer中选择单个资源或一个类似的观点,然后单击使用>替换以前的修订。 存储库将决定最后提交修改选中的资源,并提供替代工作区资源这个提交的内容。

这主要用于“删除”单一文件提交(提交恢复工作空间资源时,他们有效地移除当前提交)。 尽管这也适用于文件夹和项目,更换一个文件夹或者项目的结果“之前修订”可能是意想不到的。

恢复使用quickdiff

quickdiff特性可以用来恢复个人修改一个文件。 你可以通过线,恢复块(se范围变化线)或选择。 选择所有文本恢复选择还原一个完整的文件。

恢复变化引入了一个特定的承诺

变化,介绍了由给定提交可以恢复一个自动创建的新提交当前签出的承诺。 提交的是恢复不需要签出。

选择提交历史视图,打开上下文菜单并选择回复提交。 这将改变,选择提交引入了通过创建一个新的提交当前签出的承诺。

重置你的现任负责人

Git提供了可能性重置当前分支的负责人其他提交。 它选择重置指数和提交的树匹配工作。 注意,此操作会影响整个存储库中的所有文件和文件夹。

你可以选择做一个硬复位,复位和软复位。

  • ——头部点现在新提交,该指数和工作树不变
  • 混合——头部点现在新提交,树索引更新,工作不变
  • ——头部点现在新提交,工作树的索引和更新
重置为特定部门或标记

选择团队- >重置……上一个项目。 这将打开一个对话框,你可以选择一个分支或一个标签。

重置为一个特定的提交

历史视图中选择提交并打开上下文菜单。 在这里你找到的条目硬重置,混合重置软复位

恢复所有本地和阶段性变化

这可以通过使用一个硬复位。 如果你重置为当前头(通常最后提交你的分支)的选择你提交和重置当前签出分支覆盖工作树和索引的内容。 你可以在三个方面:

  • 选择团队>重置…上一个项目。 在对话框中选择头或您当前分支的单选按钮和开关
  • 右键单击并选择重置……在任何分支机构或标记在库视图中。 这将打开一个对话框,允许您决定在重置类型。 选择在这里。
  • 打开上下文菜单的头提交历史上视图并选择硬重置


分支

总论的分支

到一个本地存储库提交更改是不切实际的,没有使用本地分支(见上面部分的概念)。 此外,通过使用几种不同的分支,可以工作在不同的平行变化通过切换在这些分支。

因此,在开始改变本地存储库之前,第一步是创建一个本地分支。 当地分支机构是“基于”提交或远程跟踪分支。

第二个选择是推荐使用远程存储库时,因为它简化了任务的同步本地与远程的变化将所谓的“上游配置”添加到新的地方分支。

看到分支创建对话框为更多的细节。

上游的配置

每个局部分支基于本地跟踪分支指示远程存储库,可以有一些额外的配置远程分支,和所谓的策略。 看到分支创建对话框为更多的细节。

一般来说,这个配置时自动创建的本地分支基于远程跟踪分支。 然而,它可以显示和编辑存储库配置或通过点击显示在>属性在库视图中的一个分支。

检查现有的分支

从项目团队菜单节点:
  • 选择团队>开关……并从列表中选择一个分支的名字

如果有太多的分支列表不显示。 在这种情况下

  • 选择团队>开关…… >其他…
  • 在对话框中,选择一个分支,一个标签或一个参考
  • 点击好吧
从Git存储库视图
  • 点击结帐一个分支节点上
  • 或双击一个分支节点
从历史上看
  • 点击结帐在提交标签的一个分支
  • 如果有多个分支点提交一个对话框让你决定哪个部门检查。

创建一个新的本地分支

这总是完成了分支创建对话框。 新创建的分支可以检查通过选择一个复选框在对话框。

从团队菜单
  • 选择团队>开关…… >新分支…
  • 在对话框中,选择一个分支,一个标签或一个参考。
  • 点击创建分支…
  • 分支创建对话框将被打开。
从存储库视图
  • 选择创建分支…“分支”节点或在任何“分支”,“标签”或“引用”节点。
  • 分支创建对话框将被打开。
从历史上看

重命名现有分支

从团队菜单项目节点
  • 选择团队>高级> Rename分支…
  • 在分支选择对话框,选择重命名的分支
  • 输入新的分支机构名称并单击好吧
从存储库视图
  • 打开Git存储库视图
  • 选择重命名分支…或按F2在树枝上你想重命名
  • 输入新的分支机构名称并单击好吧
从历史上看
  • 选择重命名分支…与一个分支提交标签
  • 输入新的分支机构名称并单击好吧

删除一个分支

下面的所有操作显示相同的行为对以下:

  • 不能删除当前签出的分支
  • 如果删除分支可能会导致数据丢失,会显示一个警告,必须确认
    • EGit假定一个潜在的数据丢失,如果分支点提交,从当前签出的承诺是不可到达的
从团队菜单项目节点
  • 选择团队>高级>删除分支…
  • 选择要删除的部门从显示的对话框和新闻好吧
从存储库视图
  • 打开Git存储库视图
  • 选择删除分支在你想删除的分支
从历史上看
  • 选择删除分支与一个分支提交标签
  • 如果多个分支点提交,会显示选择对话框,您可以选择删除分支

分支创建对话框

有几个动作可以创建一个本地分支。 所有这些行动使用分支创建对话框:

Egit-3.5-CreateBranchDialog.png

输入的名称你想创建本地分支。 如果一个源分支是选择远程跟踪分支EGit将建议创建新的本地名称相同的分支。

点击选择……选择源分支应当依据新的分支。 通常,这是一个远程跟踪分支,但它可能是任何分支机构或提交在存储库中(选择一个本地分支不推荐如果你正在与一个远程存储库)。如果你想基地新分支指的是然后单击提交没有分支创建分支…从提交History视图所示。

当源分支选择您可以配置新分支的“上游配置”有助于获取和推动时,特别是当拉。 根据所选的选项可以选择以下配置:

  • “上游提交合并到本地分支”:拉时,变化会从上游和获取远程跟踪分支将被更新。 那么当前地方分支将合并后的新变化。 这是默认如果新的分支是基于远程跟踪分支(但这个默认可以被特定的存储库配置)
  • “变基提交当地分支到上游”:当拉,新变化将从上游和获取远程跟踪分支将被更新。 那么当前本地分支将被重置到更新远程跟踪分支
  • 如果你取消选择“推”和“拉”配置上游”):当拉,没有具体的上游配置将新的分支;然而,如果存在一个默认的远程(远程名称“起源”,将尝试使用这个远程的配置,这是默认如果新的分支不是基于远程跟踪分支

你可以查看和编辑配置的上游存储库配置或通过选择显示在>属性在库视图中的一个分支。

EGit还支持git配置参数branch.autosetuprebase,将其设置为总是如果你想使用默认变基拉的策略。 如果你将这个存储库配置这是用于所有本地分支创建基于远程跟踪分支在这个库中,如果您将它在您的用户配置将用于你所有存储库。

在下部中,您可以决定是否分公司应立即检查。

配置分支对话框

Egit-3.5-ConfigureBranchDialog.png

点击配置分支…在库视图中的一个分支,以改变当地的上游配置分支。选择远程(“。 ”是指本地存储库)和分支选择的本地分支应该追踪。 如果你想要检查“变基”拉变基当地分支到新变化跟踪分支到达,否则将会合并新变化跟踪分支到达。

合并

合并包含变化从另一个分支或标记,自从他们的历史与当前分支分开以后,到当前签出的分支。

合并一个分支或一个标签到当前分支

你可以从:触发合并

  • 历史的观点
  • 团队菜单
  • Git存储库视图
从历史的观点开始合并

这是推荐的观点开始合并,因为它向您展示您的存储库的历史。 确保切换按钮显示所有存储库的变化显示所有分支和标签历史上选择视图的工具栏。 这将确保你看到完整的历史存储库,以决定哪些你想合并分支。 选择提交分支机构或你想合并并单击标记标签合并

从团队开始合并菜单

在Package Explorer或导航器,打开上下文菜单项目节点。选择团队>合并…

现在合并对话框打开:

Egit-3.1-MergeDialog.png

在对话框中,选择一个分支或标记你想与你当前的分支合并。 该对话框还允许您选择合并南瓜和快进选项。

开始合并从Git存储库视图

你可以从任何触发一个合并分支和标签节点和从存储库节点如果你已经查清了当地的一个分支。 看到合并分支或标记为进一步的细节。

合并选项

下面快进配置选项合并由EGit认可,用于所有的分支:

[merge]
    ff = true|false|only

当你只想某个分支的配置,使用以下:

[branch "name"]
    mergeoptions = --ff|--no-ff|--ff-only


快进选项 ff = true或mergeoptions = - ff
当合并解决快进,只更新分支指针,没有创建一个合并提交。 这是默认的行为。
ff = false或mergeoptions =——no-ff
创建一个合并提交即使合并解决快进。
ff或mergeoptions = =只有——ff-only
拒绝合并和中止合并操作,除非当前的头已经是最新的可以解析为快进或合并。

当你开始从团队合并菜单”团队>合并… “你可以快进,南瓜或no-commit合并选项合并对话框中:

Egit-3.4-merge-options.png

可能合并的结果

按合并按钮之后,接下来的场景可能发生:

  • 已经是最新的:你当前的分支点提交,作为前任已选择的分支或标记。 在这种情况下没有什么改变。
  • 快进:你当前的分支点提交的前任选中的分支或标记。 在这种情况下你的分支并指出移动选中的分支或标签;这个新主管检查工作树。 快进是很常见的在处理远程存储库:更新远程跟踪分支时,通常是一个快进与相应的合并分支。 您可以执行一个拉通过抓取远程分支(例如起源/硕士)和合并成相应的当地分支(如主)。
  • 真正的融合:当两个应用以上条件egit触发一个合并的提交。 有两种可能的结果:如果没有冲突发生当前分支将指向新创建的合并提交,如果发生矛盾冲突的文件将decorator标有标签(见解决合并冲突为进一步行动的合并冲突)。
合并结果对话框

合并的结果总结在一个对话框:

Egit-3.1-MergeResultDialog.png

在第一行你看到的结果合并。 可能的结果是“已经是最新的”,“快进”,“合并”、“冲突”或“失败”。 一个可能的“失败”的原因可能是有冲突性的变更工作目录。

在第二行你看到新负责人提交的一个成功的合并(已经是最新的,快进或合并)。

表中你看到的提交合并。

解决合并冲突

合并会导致冲突,需要用户操作。 是这样的内容文件时不能自动合并。 这些冲突标有标签装饰在分段视图中。 使用分段视图找到为了解决这些冲突的文件是方便自登台视图只显示修改的文件,这样你不必阅读你所有的资源,但只有那些可能需要您注意的解决冲突。

Egit-3.1-StagingViewConflicts.png

也有冲突的资源是装饰在导航树像Project Explorer或者Package Explorer视图

Egit-0.10-merge-conflict.png

文件的合并冲突的内容提供文本标记(见冲突http://www.kernel.org/pub/software/scm/git/docs/git-merge.html _how_conflicts_are_presented更多的细节)。

使用合并工具
  • 选择顶级资源冲突显示红色标签装饰
  • 点击团队>合并工具
  • 选择合并模式使用头(最后一个本地版本)相互冲突的文件并点击好吧

Egit-0.10-select-merge-mode.png

  • 合并编辑器打开在左窗格中显示工作树版本,版本合并在右窗格中

Egit-0.10-merge-tool.png

  • 编辑工作树版本直到你满意
  • 团队>添加合并后的资源冲突标记为解决
  • 提交合并提交通过团队>提交
手动解决冲突

解决冲突,你必须做以下步骤:

  • 导航到冲突的资源
  • 编辑的内容资源冲突
  • 告诉EGit的冲突解决团队>添加
  • 提交解决冲突团队>提交
寻找冲突的文件

存储库包含有冲突的文件文本标签修饰符“|冲突”连接到存储库的名字。 资源冲突和文件夹包含此类冲突的资源冲突的标签装饰。

Conflicts.png

Alternativley,很容易找到一个暂存区域冲突的所有文件的列表。打开Git分期视图。 与修饰符将看到冲突的文件在左边。Git merge conflict.png

编辑冲突的文件

文件内容,一对相互矛盾的变化发生的地方标注标记< < < < < < < = = = = = = =,,> > > > > > >。 之前的部分= = = = = = =一般,和之后的部分通常是他们一边http://www.kernel.org/pub/software/scm/git/docs/git-merge.html _how_conflicts_are_presented更多的细节)。

在编辑器中打开文件,编辑内容和保存编辑器。

注意这一步不是强制性的。 EGit不检查内容来决定是否解决冲突。 下一步是相关的。

向git索引添加解决冲突

一旦你完成了点击编辑一个文件添加到索引在分段视图或单击团队>添加git索引添加解决冲突。 这也将标志着相应的冲突解决。

当你解决所有冲突的文本库标签装饰变化“合并”。 没有冲突的标记了。

ResolvedConflicts.png

提交一个合并

当存储库状态“合并”(与文本标签表示修饰符“|冲突”连接到存储库名称)合并终于可以提交。

分段视图中您可能希望删除冲突的言论从标准合并提交消息生成的合并操作和更新如果有必要提交消息。 然后单击提交为了提交解决冲突。

Egit-3.1-StagingViewConflictsResolved.png

如果你想使用Commit对话框提交解决冲突的点击团队>提交…在导航树中。 提交对话框打开,并带有一个稍微不同的看起来比较正常提交:

  • 提交消息区域是肾上腺素标准合并提交消息。
  • 不可能修改之前提交。
  • 不可能添加无路径的文件。
  • 不可能取消勾选复选框。 这可以保证所有解决冲突。

后按“提交”按钮完成合并。

流产合并

如果一个合并导致冲突可以中止与硬重置为当前分支合并。 这可以通过状态“冲突”和“合并”状态,即之前和之后你已经解决了冲突。

团队的硬重置可以做菜单,Git存储库视图或历史的观点。 看到恢复所有本地和阶段性变化为更多的细节。


变基

变基介绍

变基实行犯链到一个给定的提交。 一个典型的场景是开发一些功能的“主题”分支创建从一个“主”分支在某个时间点上。 当“大师”更新与其他开发人员而变化如“主题”仍处于开发阶段,也许有必要将这些更改合并到“主题”。

假设我们开始发展“话题”,创建“话题”从主分支。 在这一点上,“大师”和“话题”提交“E”。 当第一个提交(“A”)被添加到“主题”,提交存储库的历史是这样的:

          A topic
         /
    D---E master

现在,让我们假设有一些更有“主题”以及一些提交“主”(例如,“大师”可能追踪一些远程存储库和有一些变化,远程存储库被拖入“大师”):

          A---B---C topic
         /
    D---E---F---G master

现在,为了把“大师”到“主题”的变化,变基的“主题”到“主”会产生

                  A'--B'--C' topic
                 /
    D---E---F---G master


从技术上讲,提交的序列中包含在“主题”,但不是“主”应用(即择优)上的“主”。

注意,有A,B,C既不失去也不改变,而不是一个新的链提交一个“B”,C '同样的变化和提交信息与原始提交(但不同的提交id)将被创建。 老犯,B,C仍在对象数据库但不可见了,因为他们不再可以从任何分支。 A,B,C”不同于旧的,因为他们现在还包含变化F和G。

变基,一个简单的例子

让我们看一看一些简单的例子:我们有一个文本文件”FamousWords。 txt”,最初可能是一些内容

Chapter 1
Once upon a time...

Chapter 2
To be or not to be

现在,在“主题”,创建了两个提交,第一个添加一个法语翻译第二章,另一个添加一个德国翻译:

在“主题”:首先改变后

Chapter 1
Once upon a time...

Chapter 2
To be or not to be
Être ou ne pas être

在“主题”:第二个改变后

Chapter 1
Once upon a time...

Chapter 2
To be or not to be
Être ou ne pas être
Sein oder nicht sein

同时,“大师”的文件被改变通过增加两个提交添加法语和德语翻译第1章:

Chapter 1
Once upon a time...
Il était une fois
Es war einmal

Chapter 2
To be or not to be

提交历史是这样的:

EGit-0.10-MergeDemoHistory.png

现在,如果被重置到“主”“话题”,这两个主题的变化应用于相同的序列在他们应用在“主题”的进化。

结果是一个合并的版本“FamousWords.txt”:

Chapter 1
Once upon a time...
Il était une fois
Es war einmal

Chapter 2
To be or not to be
Être ou ne pas être
Sein oder nicht sein

与提交和提交历史的历史“主题”在当前“大师”:

EGit-0.10-MergeDemoHistoryAfterRebase.png

真实的世界:变基冲突

到目前为止,我们认为“主题”的变化可以auto-merged为“主人”。 在现实世界中,然而,它可能发生在变基,你遇到冲突。 现在,如果提交是择优包含与“主人”的变化,变化,冲突变基操作中断后应用冲突变化;冲突以通常的方式可视化标记(冲突)和用户有机会决定

  • 手动解决这些冲突,
  • 跳过当前的提交,或
  • 完全中止变基


如果解决冲突选择,冲突已经解决了手动,更改必须“添加”,然后变基可以恢复,即下一个链中的提交将被应用。

如果跳过选择、冲突性的变更将恢复和下一个链中的提交将被应用。

如果中止被选中,变基操作将被完全回滚,存储库返回到其原始状态变基之前就开始了。重复这个过程直到最后提交成功应用或跳过。 最后,“主题”分支将被修改指向最后一个提交。

为了更好地理解“跳过”,让我们回顾上面的介绍。 如果我们假设提交“B”导致一些冲突与当前“大师”,用户可能决定简单地跳过“B”;新提交历史变基后就会是这个样子:

                  A'--C' topic
                 /
    D---E---F---G master

开始变基

历史上的观点:

  • 你想变基检验分会
  • 选择提交到你想变基签出分支。 这一承诺将成为所有提交的新基地被重置
  • 点击变基

在Git存储库视图:存储节点上,变基…打开一个对话框,要求用户选择一个分支,没有检出;当前签出分支将被重置到选中的分支。 “分支”节点(本地和远程跟踪分支,但不是在当前签出的分支),变基立即重置当前签出分支到选中的分支:

EGit-0.10-StartRebaseFromRepoView.png

变基确认对话框

变基是否成功,将显示一个确认对话框,该对话框可以抑制勾选复选框;Git的偏好首选项页面允许对话框再次出现。 如果对话框被抑制了,一个“信息”消息写入Eclipse日志。

变基冲突

如果冲突发生在变基,一个对话框显示给一些信息提交,导致冲突。 通过选择一个单选按钮,您可以决定是否

  • 手动启动合并工具来解决冲突
  • 跳过当前的提交
  • 完全中止变基
  • 什么也不做(回到工作台),这相当于打“逃脱”:

Egit-3.1-RebaseResultWizard.png

除非跳过中止在对话框中,选择冲突必须手动编辑解决冲突的文件。 当完成编辑,文件必须声明为得到解决通过将它们添加到git索引。

如果你取消了变基向导找到文件冲突的最简单方法是使用分段的观点。 点击合并工具与冲突文件打开这个文件的合并工具。Merge工具也可以从团队中的相应条目的菜单。

Egit-3.1-StagingViewOpenMergeTool.png

编辑该文件,直到你满意解决冲突并单击添加到索引在分段视图对应的条目。 这个阶段解决冲突和冲突标志着解决。

Egit-3.1-StagingViewMarkResolved.png

毕竟解决了冲突,继续操作被启用。 为了继续变基操作是点击停止由于冲突继续或者点击按钮进行视图变基>继续在存储库中的存储库节点视图。

Egit-3.1-StagingViewRebaseButtons.png

如果不是解决冲突你想跳过点击提交导致冲突跳过代替。

如果你想中止正在进行的变基操作点击中止。 这会将一切你开始变基之前的状态。

流产变基

只要库在“重新”状态,用户可以随时中止变基在Git存储库视图使用菜单操作“变基>中止”,这是可用的存储库节点上。

交互式变基

剧情简介

Egit-3.2-InteractiveRebaseView.png

交互式变基允许快速编辑一系列提交使用以下行为定义在一个变基计划:

  • 选择定义提交的顺序,选择条目允许重新排序
  • 跳过删除一个承诺
  • 编辑修改提交
  • 重述编辑提交的信息
  • 南瓜南瓜提交与其前任提交,包括提交消息
  • 修正南瓜提交的diff到其前任丢弃被提交的信息

警告:不重写提交您已经发表在远程存储库,它被认为是不好的做法除了实验或审查分支,因为你的同事可能已经他们的工作基于这些提交出版,你也会迫使他们重写他们的变化。 虽然是一种常用的工具在审查分支如使用Gerrit返工变更时必须改进基于评审反馈。

启动交互式变基

首先检查本地分支(这里分支toRebase包含提交系列你想编辑的)。 然后打开这个存储库,然后单击History视图交互式变基在提交前最古老的提交要重写。 通常这是一个起源/主点。

Egit-3.2-StartInteractiveRebase.png

这将打开新的视图Git交互式变基显示变基计划的提交要修改序列中的拓扑顺序会在变基操作处理。所有提交的初步行动选择这将择优挑选相应的承诺。 注意,EGit也倒回到头提交前编辑列表中的第一个为了准备重新存储库。

Egit-3.2-StartedInteractiveRebase.png

计划变基

这里最初的变基计划,第一个提交应用于重绕头在先,然后所有其他提交重置的顺序点击“开始”时,他们将被应用。

Egit-3.2-PlanInteractiveRebase.png

接下来我们准备变基计划,提交使用上下箭头按钮提交进行重新排序,并选择变基行动我们想应用提交我们想调整。

在这个例子中我第一次重新排序的提交,以便实现新的计算器操作立即实现测试之前提交各自的操作。

在这里我想修改提交在本系列:

我想跳过提交“待办事项清单”,因为它包含了一个私人TODO列表我使用而实现的操作,我不需要这个了。我需要修改提交“添加除法运算”因为这是马车,这是揭示了相应的测试,在后面的变化实现的,因此我选择行动编辑在这里提交“添加乘法操作”显然提交消息头中有一个错误,所以我选择重述。我想提交de7647b压成它的前身,因为它没有意义的JavaDoc解决独立于它所描述的实现,因此我选择南瓜南瓜和它的前身。

Egit-3.2-InteractiveRebaseView.png

执行交互式变基

当你完成计划变基点击开始开始变基命令的执行。 EGit将处理计划,停止在提交您所选择的行动需要你干预交互地编辑相应的承诺。

在我们的小例子变基停止在第一次提交“添加除法运算”因为我们暗示,我们想编辑它。 最后选择提交以粗体突出显示。 这个时候跳过第一步提交“待办事项清单”已经处理,本系列提交不再在我们提交我们重写而执行变基。 也提交“添加分割操作”已经择优因为我们想修改它。 注意,EGit已经分期视图中选择“修改”选项以准备修改这个提交。

Egit-3.2-InteractiveRebaseEdit.png

现在我们在这个提交修复bug,舞台上的变化需要修复bug,必要时调整提交消息并单击提交为了修正bug提交。

Egit-3.2-InteractiveRebaseAmend.png

让我们看一看历史视图看到结果提交图。 现在点负责人重写固定提交“添加除法运算”,注意其SHA1不同于原始版本因为我们重写了致力于修复bug。

Egit-3.2-InteractiveRebaseHistoryAfterEdit.png

接下来,我们点击继续为了恢复处理变基计划。 变基选择提交“分测试”和“添加用施工”和停止再次提高提交消息编辑器,这样我们可以修复错误的提交消息后提交。

Egit-3.2-InteractiveRebaseReword.png

编辑提交消息来修复错误并单击好吧为了修改提交消息和恢复处理。

变基选择未来3犯,南瓜提交“添加力量”和“动力操作解决javadoc”成一个新的提交,再次停止,这样我们才能准备新提交的提交消息。 与连接的初始化消息的提交被压扁。

Egit-3.2-InteractiveRebaseSquash.png

并单击编辑被提交的信息好吧恢复处理。

Egit-3.2-InteractiveRebaseSquashMessage.png

变基选择最终提交“测试”力量和成功完成。

Egit-3.2-InteractiveRebaseFinished.png

最后让历史上有另一个看起来视图检查交互式变基命令的结果。 比较现在提交的重写系列中包含分支与旧提交“toRebase”系列仍然可见我放在另一个地方分支“开始”为了保持旧的系列可见。

Egit-3.2-InteractiveRebaseHistoryAfterRebase.png

安全指令

如果你碰巧出错在多步骤的过程中,你总能触及中止为了停止在进步和变基操作回滚到起点。

当你开始使用此功能可能是一个好主意的地方第二个起点上的本地分支(在这个例子中我给),使之更明显发生了什么,直到你熟悉这个强大的git命令。

变基与auto-stashing

EGit还支持Git配置选项rebase.autostash。 设置这个选项变基。 autostash = true自动创建一个临时藏匿在变基操作开始之前,并将其应用在操作结束后。 这意味着您可以运行变基也脏worktree交互式变基。 然而,小心使用:最后隐藏应用程序成功后变基可能导致非平凡的冲突。

樱桃采摘

择优挑选的介绍

一个给定的提交C在分支稳定- 1.0包含一组改变你想要集成在当前发展分支

                  A--B--C--D stable-1.0
                 /
    D---E---F---G master HEAD

择优挑选提交C创建一个新的提交C '在头顶提交当前签出的分支C '将包含执行的变化C应用到当前签出的分支

                  A--B--C--D stable-1.0
                 /
    D---E---F---G--C' master HEAD

择优挑选例子

你目前工作分支“feature2”(头)。 有一个在另一个分支提交”功能1”。
你想把变更由提交”功能1”到你当前的开发分支”功能2”。

  • 历史上选择提交”功能1”并单击视图择优挑选:

CherryPick1.png

  • 作为结果,你得到一个新的提交”功能1”在你的当前分支“特性”包含的变化”功能1”:

CherryPick2.png

  • 挑选可以遇到冲突。 在这种情况下,冲突标记呈现到受影响的来源:

CherryPick3.png

  • 打开临时视图快速找到冲突的文件。
  • 点击合并工具与冲突文件打开这个文件的合并工具
  • 解决冲突通过编辑相应的来源中所描述的一样解决合并冲突
  • 添加文件编辑标记冲突解决
  • 提交冲突的解决


标签

创建一个标签

  • 打开历史视图,点击创建标签……在提交你想标记

Egit-3.1-CreateTagDialog.png

  • 输入标签名称
  • 输入标签信息
  • 点击好吧创建注释标记

标签也可以从团队创建菜单,点击团队先进> >标记……输入标签名称和消息,选择提交你想标记(默认),点击好吧

替换现有的标签

做什么如果你标记错误的提交或某种错误结束了?

  • 如果你还没有把这个替换标签,你完成。
  • 如果是已经出版的你不应该更换标签但使用一个新名字否则你告诉大家谁有老标签取代手动更新。 这是因为,Git不会(也不应该)改变标签在用户背后。 如果有人已经旧的标签,做一个git拉动你的树不应该只是让他们覆盖旧的。

如果你的旧标签还不推你可以纠正它在以下方式:

  • 在历史视图中单击标签……在提交你想把标签

Egit-3.1-ReplaceExistingTag.png

  • 从列表中选择标记你想替换现有的标签
  • 或者开始键入的任何部分标签你寻找到标签名称字段,这将现有过滤的列表标签与标签包含你输入的字符串,然后选择你想要的标签来代替
  • 马克的复选框力取代现有的标签
  • 改变标签和新闻好吧

删除标签

为了删除一个标签,选择要删除标签,然后单击删除标签

注意:这是一个糟糕的实践删除标签已经被发表在一个公共服务器,甚至一些Git服务器不允许删除标签,以确保可追溯性的释放通常标记。 也看到了部分“re-tagging”Git参考文档的标记命令。

轻量级和签署了标签

轻量级标记所示存储库视图以及创建标签对话框,但不能编辑。标记蓝色图标显示在库视图中,注释标签装饰着一个黄色的人。

Egit-1.1-tags.png

历史上看,标签显示为黄色标签。

Egit-1.1-tags-history.png

标签还没有签署EGit的支持下,使用命令行git - s标签代替。


补丁

创建补丁

”一个补丁一个软件是为了解决问题,或更新计算机程序或其支持数据”(维基百科)。 一个补丁文件包含一组资源变化的描述,可以自动应用到另一个eclipse工作区或git存储库。

eclipse使用的补丁格式(团队>应用补丁git)和(git应用git是在命令行上)是不同的。 可以创建两种类型的EGit的补丁。

从提交创建一个补丁

这是最常见的用例为一个分布式的版本控制系统。 开发人员提交变化对当地特色或错误修复分支和想出口这个变成一个补丁文件。

从历史观点:这是可以做到的

Egit-0.0-create-patch-menu.png

补丁文件将包含提交的区别及其母公司历史视图。 注意,history视图应用的过滤器也用于创建补丁。

补丁向导

向导包含两个页面。 第一页允许您选择补丁的位置:

Egit-0.0-create-patch-dialog.png

补丁文件的名称从第一行创建的提交消息。

在第二页你可以改变补丁格式。

目前有一个复选框:出口在git中补丁格式

  • 如果你不检查它(这是默认)补丁可以应用与eclipse应用补丁……向导。 路径是相对于eclipse项目,不包含前缀(例如git format-patch——没有前缀git命令行上)。
  • 如果你检查一下补丁就像的结果git format-patch——no-statgit命令行上。

二进制差别目前没有生产。

应用补丁

目前在git EGit并不能够应用补丁格式。 可以使用标准的Eclipse应用补丁(统一的diff)格式使用团队>应用补丁……。 Git补丁可能包含非标准扩展重命名和二进制差别。 EGit的当前版本没有生成这些扩展。


管理存储库

“Git存储库视图”是主要的UI元素,以便同时使用多个存储库(即在一个Eclipse工作空间)。

这个视图可以使用菜单打开道路
Windows >显示视图>其他…… > Git > Git存储库

这也是部分“Git存储库探索”的角度可以使用菜单路径
Window > Open Perspective >其他…… > Git存储库中探索

如果你已经有项目工作区与Git存储库,您可以使用
团队>存储库视图中显示

在任何资源打开视图。

将存储库添加到Git存储库视图

最初,Git存储库视图是空的。 为了添加存储库,有几种选择:

  1. 手动添加一个存储库从本地文件系统
  2. 克隆存储库和自动克隆存储库添加到视图
  3. 本地文件系统上创建一个存储库
  4. 添加一个存储库通过粘贴一个Git存储库路径视图
手动添加一个库

您可以从您的本地文件系统添加一个存储库没有克隆到Git存储库视图。 这可以帮助你建立一个新的Eclipse工作区和想重用你的Git存储库。 使用添加一个现有的Git存储库从视图的工具栏按钮:

RepoMgrAddRepositoryIcon.png

会出现一个对话框提示您为您的本地文件系统的目录中。 在选择正确的目录,你可以点击搜索按钮来查看Git存储库的列表在这个目录中。 你可以选择部分或全部找到存储库,并将它们添加到视图中使用好吧:

Egit-0.11-import-projects-add-dialog.png

克隆存储库

为了克隆存储库,请参考克隆远程存储库。 克隆操作成功后,新克隆存储库应该自动出现在Git存储库视图。

您还可以使用克隆一个Git仓库从视图的工具栏按钮开始克隆向导:

RepoMgrCloneRepositoryIcon.png

请参考克隆远程存储库关于如何使用该向导。

创建一个存储库

您可以创建一个新的空库在本地文件系统中。 这是有用的,如果你以后想要创建一个或多个新项目低于这个存储库。 另一个usecase是创建一个新的裸存储库,您可以推动。 使用创建一个新的Git存储库从视图的工具栏按钮:

RepoMgrCreateRepositoryIcon.png

会出现一个对话框,让你选择一个目录:

RepoMgrCreateRepositoryDialog.png

如果你选择复选框创建裸存储库新存储库将没有一个工作目录。 你只能通过推动变化添加内容从另一个存储库中。

添加一个库使用复制和粘贴

作为一个快捷方式,也可以粘贴Git存储库的本地文件系统路径从剪贴板中这一观点。 为了做到这一点,复制Git存储库的路径(的完整路径.文件夹)到剪贴板,然后打开上下文菜单的视图面板:

RepoMgrPasteRepositoryPath.png

或者点击编辑>粘贴从主菜单中(或相应的键盘快捷键)。 如果剪贴板内容不合适,将显示一个错误弹出,否则自动添加存储库应该出现。

视图后填充某些存储库,它应该看起来像这样:

RepoMgrViewWithRepos.png

删除存储库

删除存储库从存储库视图

为了从存储库中删除存储库视图中选择一个存储库,然后单击“删除库”

Egit-0.10-RemoveRepository.png

删除存储库

为了删除一个存储库,存储库视图中选择它,然后单击“删除库”。

Egit-0.10-DeleteRepository.png

然后确认你想删除存储库,并决定如果你想删除存储库的工作目录中包含的项目存储库从Eclipse工作区中。

Egit-3.1-DeleteRepository.png


Git存储库的结构视图

下面的屏幕截图显示了最上面的两个级别的Git存储库视图:

Egit-0.11-RepoViewTopLevel.png

根节点代表库本身。 节点文本显示库的名称和它的位置在本地文件系统。 “分支”和“标签”节点允许浏览和操作标签和分支。 “引用”节点列表其他引用不分支或标签,最明显的是“头”和“FETCH_HEAD”符号引用(参见Git引用)。

“工作目录”节点显示的位置和结构工作目录的本地文件系统(只有在发展的情况下,或non-bare库,对于裸存储库,这个节点总是一片树叶)。

最后,“遥控器”节点允许浏览和操作远程配置用于获取和推动。

Git存储库视图的功能

项目导入

为了使用Git存储库的内容,其文件和文件夹必须导入到Eclipse工作区以项目的形式。 而Git克隆向导允许做这样的进口直接克隆后,Git存储库视图允许独立触发项目进口的克隆操作。

“导入项目…… ”上下文菜单可以在“库”节点以及任何“文件夹”节点中“工作目录”节点和“工作目录”节点本身:

Egit-0.11-ImportProjectsFromRepoView.png

提供的基本原理导入项目……行动在一些节点是一些向导用于导入的项目可以考虑文件系统目录,例如导入现有项目向导。 如果进口开始从“库”或“工作目录”节点,存储库的工作目录设置上下文,否则目录对应当前选中的“文件夹”节点。

项目导入中讨论的细节使用新项目向导

分支和标签的支持

“分支”节点允许创建、浏览、结帐和删除本地和远程分支。 “标签”节点允许浏览和查看标签。 “分支”节点和“标签”节点允许合并分支或标记当前签出的分支,也与当前签出分支同步。

为了提高可读性,分支机构组织在两个子节点的本地和远程分支,分别仅显示缩短名称,例如代替“refs /头/大师”你会发现一个条目“主”在“本地分支”节点,而不是“refs /遥控器/产地/大师”缩短名称“起源/主”显示“远程分支”节点下。 同样,标签的名字,缩短省略“refs /标签/”前缀:

RepoMgrBranchesAndTags.png

退房的分支和标签

分支和标签可以检出双击相应的节点或通过选择相应的上下文菜单项。

创建和删除分支

当地分支机构可以使用创建分支创建对话框。 向导通过右键单击打开“分支”,任何“分支”的“当地分支机构”和“标签”节点)。

删除分支使用相应的上下文菜单项。

变基

目前您可以触发重新定价的另一个分支上单击右键检出的分支变基在任何本地或远程跟踪分支节点。

合并分支或标记

你可以从任何触发一个合并分支和标签节点和从存储库节点如果你已经查清了当地的一个分支。 看到合并为进一步的细节合并功能。

  • 当您选择以外的任何分支节点当前签出分支或任何标记节点,使用合并直接引发并入当前签出的分支。
同步与一个分支或标记

就可以进行比较了在你的头的变化改变在任何其他分支或标记。 右键单击并选择同步……在任何分支机构或标记。 然后打开eclipse同步视图包含一个表示的变化包含在你的头而不是其他分支或标记(传出变更),反之亦然(的变化)。 请参考文档同步特性的更多细节。

确定检出的分支

有两种方法可以确定哪些分支或标记目前检查:检查分支/标记节点布置一个复选标记和“头”条目下的“符号引用”节点显示了(全部)检出分支的名字:

RepoMgrCheckedOutBranch.png

重置一个分支或标记

右键单击并选择重置……在任何分支机构或标记。 这将打开一个对话框,允许您决定在重置类型。 看到重置你当前的头为进一步的细节。

“分离”的头

如果头“分离”,即不是指向的本地分支,但提交或标签,那么没有一个或几个“检出”标记可能出现在树,因为任何数量的远程分支或标签可能指向当前签出提交。 国家你在当你的头是分离不记录任何分支(这是自然- - -你没有任何分支机构)。

检查引用

引用节点显示一些引用除了分支和标签(这个列表是动态的,依赖于存储库)的当前状态:

Egit-0.11-RepoViewReferencesNode.png

如果引用是象征性的,即指向另一个参考,目标引用的名称所示,紧随其后的是引用的对象ID的目标。 如果引用不是象征性的,只显示了对象ID。

在上面的示例中,头是一个象征性的引用指向分支refs /头/主”(即分支”主“签出”,而FETCH_HEAD点直接提交226 a7f……。

以下操作可以在右键单击一个参考:结帐(除非参考已经签出)创建分支”……”

浏览工作目录

“工作目录”节点的本地文件系统结构可视化Git存储库。 也可以打开一个文本编辑器上的文件:

RepoMgrOpenTextEditor.png

另外,通过拖拽文件可以打开的编辑器区域工作目录。

同时,所有文件和文件夹节点以及在“库”节点,一个选项是给复制文件系统特定的路径到剪贴板。 这是很有用的,有时需要的路径,例如打开一个目录使用一个文件浏览器或复制和粘贴库视图实例之间(见上文关于存储库添加到视图)。 的复制到剪贴板也可以使用编辑>复制(或相应的键盘快捷键)。

存储库配置

在Eclipse中集成的通用“属性”视图允许查看和编辑Git配置(全球和repository-specific配置)。 如果“属性”的观点是开放的,它是在“库”时自动更新节点被选中。 下拉框(左屏幕截图中红色框)你可以切换显示存储库配置,既聚集全球配置和一个视图。 如果视图显示了存储库配置或全局配置,您可以打开一个编辑器对话框编辑按钮(右屏幕截图中红色框)。 编辑器对话框相同的功能作为首选项页面团队> Git >配置

在Git存储库视图中,有一个属性在上下文菜单中,打开一个配置对话框允许编辑存储库配置。 这里,关键值对可以添加、更改或删除。 的开放按钮允许在文本编辑器中打开存储库配置文件。

远程存储库

“遥控器”节点允许浏览和编辑远程配置。 每个远程配置有一个名称和一个推动规范,取回规范,或两者兼而有之。 如果一个“远程配置”节点或它的任何孩子被选中时,属性视图将显示摘要的远程配置。 在这个例子:有一个远程配置命名“起源”,只有一个取规范,但没有推动规范:

RepoMgrRemoteConfig.png

菜单操作提供了添加、配置和删除远程配置和获取,推动规范。

直接获取,推动支持

可以直接执行获取,推动远程节点上的(即没有向导)以及相应的“获取”和“推”节点:

RepoMgrSimpleFetch.png

注意,获取或推操作将立即执行异步工作;完成后你会得到一个确认弹出显示获取的结果。

“获取”节点包含一个所谓的获取规范和“推”节点包含一个所谓的推动规范。

创建一个默认获取规范克隆存储库时。 您可以编辑fetch与菜单项规范配置获取…。 这将打开一个向导。 在第一个页面中您可以编辑获取URI。 Ob第二页可以确定fetch裁判规范,明白了获取参考规范

您可以创建或编辑一个推动规范菜单项配置推…。 这将打开一个向导。 在第一个页面中您可以编辑推uri。 如果获取获取URI指定自动列入推动规范和不需要额外的推动URI。 在第二页你可以确定裁判规范,明白了推动裁判规范

添加一个远程配置

这是通过使用上下文菜单操作“遥控器”节点。 启动一个向导要求新配置的名称以及配置是否取回,推动,或两个:

RepoMgrNewRemote.png

如果配置获取复选框被选中时,下一个向导页面请求的URI库获取:

Egit-0.9-repo-view-createRemoteWizardFetch.png

点击改变……打开一个对话框,允许您选择一个URI。 下一步是定义远程规范获取URI。 看到获取参考规范关于细节。

如果配置推复选框被选中时,下一个向导页面请求的uri库来推动。 这实际上是一个列表,你可以将多个存储库。 点击添加....向列表添加uri使用上面的对话框一样。 您可以删除标记他们的uri列表和打击删除。 这一步是完全可选的,如果已经是一个获取URI定义。 在这种情况下,获取URI还将用于推动。 如果至少有一个URI定义在这个步骤中,它会覆盖获取URI。 在这个例子中,已经有一个获取URI,所以下一个启用按钮,即使没有推动URI列表中:

Egit-0.9-repo-view-createRemoteWizardPush.png

下一步是定义远程规范推动uri。 看到推动裁判规范关于细节。

新的远程配置完成后,将可见:

RepoMgrRemoteCreated.png

改变远程配置

也可以添加、删除或更改获取/规范推动现有的远程配置使用上下文菜单。

Gerrit配置

如果和你一起工作Gerrit代码评审作为远程存储库服务器

  • 指定配置用于推动更改代码评审
  • 指定要获取获取配置从Gerrit复习笔记
  • 配置存储库选择计算Change-Id Gerrit代码评审默认选项在提交对话框中

选择Gerrit配置…从一个远程的上下文菜单。 这将打开一个向导,一个页面:

Egit-2.1-clone-wizard-gerrit-page.png

  • 当你点击完成向导设置存储库配置参数gerrit.createchangeid真正的。 这将确保复选框计算Change-Id Gerrit代码评审在提交对话框在默认情况下是选中的。 看到提交消息获取详细信息。
  • 如果你想配置自动Change-Id插入在稍后的时间点可以使用存储库配置编辑器(首选项>团队> Git >配置)设置配置参数gerrit.createchangeid为true。 如果你想要这个配置为所有你可能把它放到~ /存储库。 gitconfig然后你不需要重复这个配置为每个新库你碰巧。
  • 此外向导添加一个refspec”refs / notes / *:refs / notes / *”获取规范。 Gerrit存储数据git的复习笔记。 refspec这些审查数据将自动获取当你从这个远程获取,他们将在提交查看器显示。
  • 一节中将URI您可以配置URI用于默认配置。 它是预先填写取决于你克隆的URI。 如果你克隆git协议,协议将自动更改为ssh,默认Gerrit ssh端口29418是自动添加的。 协议需要用户有用户为了方便。
  • 一节将配置有一个领域,目的地分支。 在这里你应该输入目标分支的名称改变接受Gerrit代码评审工作流将提交。 这产生一个条目头:refs / / < branchname >在推动配置中指定的远程克隆向导。
  • 存储库已被配置为显示Gerrit绿色Gerrit装饰

Egit-3.1-RepositoryGerritDeco.png

刷新

定期自动刷新视图。 的刷新工具栏中的按钮允许触发立即刷新:

RepoMgrRefresh.png

与选择

如果与选择启用切换,相对应的文件或文件夹将自动显示当前工作台选择:

RepoMgrLinkWithSelection.png

链接编辑器

如果链接编辑器启用切换,相对应的文件或文件夹将自动显示当前活动编辑器:

RepoMgrLinkWithEditor.png

布局层次分支

如果布局层次分支启用切换,分行将显示在一个层次布局使用层次斜线(/)分隔符:

RepoMgrHierarchicalBranchLayout.png

这可以帮助组织大量的分支。

裸存储库

“裸”Git存储库(相对于“发展”或“标准”存储库)没有工作目录根据定义,所以所有操作相关工作目录(退房、项目导入、浏览工作目录)没有这样的存储库。 存储库是可视化的“Bare-ness”“工作目录”节点,这始终是一片叶子:

RepoMgrBareRepository.png

裸存储库只改变了推动变化。

删除存储库从Git存储库视图

这是作为菜单操作在“库”节点。 请注意,这并不删除存储库,但只是从视图中删除节点。 如果有项目的工作区位于存储库的工作目录,用户将被提示确认删除这些项目从Eclipse工作区中。

显示存储库相关的观点

显示在历史记录

命令>历史上显示将打开历史视图显示所有的变化选择存储库。

在Reflog

命令在> Reflog将打开Git Reflog视图显示所选的Git reflog库。

显示在属性

命令显示在>属性将打开属性视图显示选中的属性库。


处理任务

EGit 0.11以来第一次与Mylyn可用来支持集成处理任务存储库。

安装

您需要安装这个功能“EGit Mylyn”使用EGit Mylyn集成。 这也需要Mylyn安装。

提交消息模板

  • 在配置Mylyn提交消息模板首选项> >团队任务和编辑提交评论模板
  • 使用以下变量以及任何文本修改提交消息。
    • connector.task。 前缀,存储库。 善良,存储库。 url,任务。 受让人,任务。 cc、任务。 描述、任务。 id、任务。 关键的任务。 关键词,任务。 lastmodified、任务。 指出,任务。 优先级,任务。 产品的任务。 记者的任务。 分辨率,任务。 状态、任务。 总结,任务。 类型,任务。 url、task.completiondate任务。 创建日期,task.reminderdate

Egit-0.11-configure-commit-template.png

  • 之前你使用Mylyn UI更改激活相应的任务。

Egit-0.11-activate-task.png

  • 当启动提交对话框EGit将预先使用提交消息的提交消息模板。

Egit-0.11-commit-using-template.png

看到Mylyn用户指南更多的信息如何处理任务。

查看提交

Egit提交查看器允许提交在Eclipse编辑器中打开。

EGit提交查看器显示下面的提交信息:

  • 提交选项卡
    • 链接打开父母提交
    • 作者
    • 提交者
    • 消息
    • 标签列表指向这个提交
    • 的分支列表提交上存在

Commit-editor-commit-page.png

  • Diff选项卡
    • 文本查看器的输出文件的差异
    • 观众可以从配置中使用的颜色首选项>一般>外观>颜色和字体>Git文件夹

Commit-editor-diff-page.png

  • 指出选项卡
    • 所有Git提交记录

Commit-editor-notes-page.png

标签提交

  • 选择Create标签工具栏图标从提交查看器
    • 标签对话框将打开允许您创建一个标签的提交。

从提交创建一个分支

  • 选择创建分支图标工具栏从提交查看器。
    • 分行将打开对话框允许您创建一个新的分支的提交

查看提交

这个检查提交提交查看器中显示。 提交将签出头会分离

樱桃采摘提交

应用变化引入的承诺在提交查看器显示当前的核对提交或分支。

打开提交查看器

提交查看器可以打开从以下地方:

寻找提交

EGit支持搜索提交。

Git搜索页面

可以搜索的提交Git搜索标准的Eclipse搜索对话框中的选项卡。

这个对话框支持搜索文本或模式出现在不同领域Git提交的信息,作者,提交者,和提交的sha - 1 id,其母(s),与之关联的树。

Git-search-page.png

浏览搜索结果

提交搜索搜索结果显示在标准的Eclipse视图。 结果按库在树模式分组。 双击提交搜索视图将打开它提交查看器

Git-search-results.png

启动Git搜索

Git可以打开搜索页面选择Git搜索选项从搜索拉在Eclipse工具栏。

Git-search-dropdown.png

打开提交对话框

EGit的开放的Git提交对话框与Mylyn相似打开任务和核心开放资源对话框。 对话框中搜索每个配置的Git存储库的分支,标签,或提交sha - 1进入过滤箱并显示匹配的提交。

Git-open-commit.png

可以通过选择打开的对话框开放的Git提交Eclipse导航工具栏按钮。

Git-open-commit-toolbar.png

发现每一行的作者在一个文件中

EGit支持显示git责备信息编辑器内的统治者。

选择团队>显示注释行动文件选择打开编辑器,将显示一个注释统治者和提交文件中的每一行的作者信息。 悬停在统治者将显示一个弹出显示提交身份证、作者、提交者,提交消息和diff应用提交选定的块。

怪注释编辑器的外观和感觉的统治者可以从配置修正子菜单可以从上下文菜单。

Egit-3.2-BlameImprovements.png

点击开放的承诺开放的承诺提交查看器,点击显示在历史记录显示提交历史视图。 点击显示注释显示注释的父母提交提交所示盘旋。

处理子

你可以阅读更多关于Git子是什么以及它们是如何工作的Git社区书一章

克隆存储库与子

子库嵌套在一个父库。 所以做父母的克隆存储库时需要克隆子模块库,文件/文件夹可用在父库的工作目录。

检查克隆子按钮Git克隆向导将克隆克隆后的所有子模块库父库完成。

Egit-13-clone-submodules-wizard.png


浏览子

有一个节点显示在Git存储库视图包含子库的。

给父母存储库中的所有子节点下显示以及信息提交当前签出。

Egit-13-submodules-node.png

添加子模块

你可以添加一个新的子模块库,选择一个存储库中Git存储库查看和选择添加子模块上下文菜单选项。

向导将提示路径和URL添加的子模块。 输入的路径将是相对于父库的工作目录和URL将被用于克隆在本地存储库。

一旦完成向导将克隆子模块,添加到索引,子模块将注册的.gitmodules文件以及在父库的. /配置文件。

更新子

有两个动作,可以用来更新子,更新子模块同步子模块

选择更新子模块子模块将查看提交行动中引用父为子模块库的索引。 这个命令将执行一个合并或变基如果已经配置的更新字段为选定的子模块的配置节在父库的. /配置文件。

选择同步子模块操作子模块将更新远程URL使用的子模块的当前值.gitmodules文件的根源母公司的工作目录库中。

团队项目集合

团队项目集(.psfGit团队支持文件)的提供者。

进口

导入一个现有项目集,使用进口…向导,然后选择Team Project Set团队

你可以选择一个文件,其中包含导入定义和选择进口项目添加到一个工作集。

在下一步中,克隆存储库,项目进口和连接。 这可能需要一段时间的大小取决于存储库。

出口

创建一个项目设置为现有的Git项目文件,选择的项目/工作集已经连接到Git团队提供者。

然后打开出口……向导中,选择Team Project Set团队。 你只可以选择出口工作集或项目,可以改善你的选择。 在下一步中,选择一个输出路径和完成向导。

格式

你也可以手动编辑.psf文件。 每个项目都有一个条目是这样的:

<project reference="1.0,git://egit.eclipse.org/egit.git,master,org.eclipse.egit"/>

值之间用逗号分隔,有以下的意义:

  1. 格式版本
  2. Git存储库URL
  3. 部门名称最初看看
  4. 道路项目导入(其中包含的文件夹. project),相对于存储库

每个项目都有一个条目。 对于相同的存储库中的多个项目,为每个项目创建这样一个条目相同的存储库URL。 导入是只克隆每个库一次足够聪明。

如果存储库包含一个项目的根,使用随着项目的路径。

参考

菜单

项目上下文菜单

项目节点导航视图(导航器,Package Explorer等)以下Git行为可用于项目共享与Git团队提供者:


主要项目菜单

Egit-3.1-ProjectMenu-Main.png

“远程”子菜单

Egit-3.1-ProjectMenu-Remote.png

“转向”子菜单

Egit-1.2-project-menu-switchto.png

“高级”子菜单

Egit-3.1-ProjectMenuAdvanced2.png


资源的上下文菜单

在资源节点(文件和文件夹)导航视图下面的Git操作可用于项目共享与Git团队提供者:
Egit-3.1-ResourceMenu.png

存储库视图菜单

在库视图菜单取决于选定的节点类型
Egit-0.10-repoview.png

菜单在库节点:
Egit-3.1-ResourceMenu.png

菜单在分支节点:
Egit-3.1-RepoViewBranch.png

菜单标签节点上:
Egit-3.1-RepoViewTag.png

菜单在参考节点:
Egit-3.1-RepoViewReference.png

菜单在远程节点:
Egit-3.1-RepoViewRemote.png

菜单在获取配置节点:
Egit-3.1-RepoViewFetchConfig.png

菜单将配置节点:
Egit-3.1-RepoViewPushConfig.png

菜单在工作树节点:
Egit-3.1-RepoViewWorkingDir.png

历史视图菜单

菜单中的条目历史视图的提交列表

Egit-3.1-HistoryViewMain.png

菜单项的历史视图Quickdiff子菜单

Egit-3.1-HistoryViewQuickDiff.png

Git工作台工具栏和菜单Git工作台

为了缓解使用最频繁使用Git的行动Git命令组可以激活显示一个Git工作台工具栏或菜单吗

  • 点击窗口>自定义的角度…
  • 在选项卡命令组的可用性点击Git,这将使Git工作台工具栏和菜单
  • 在选项卡工具栏的可见性菜单的可见性你可以配置哪些行为应该出现在Git工作台工具栏和菜单

Egit-3.1-GitToolbar.png

Egit-3.1-GitMenu.png

菜单操作

  • 添加
    • 变化出现在工作树添加到git索引,也称为分段变化。
    • 将新创建的资源在git版本控制(git不会自动开始跟踪参考资料)。
    • 解决冲突
  • 应用补丁——应用补丁。
  • 假设不变——资源可以标记“假设不变”。 这意味着Git停止检查工作树文件可能的修改,所以您需要手动设置一些告诉Git当你改变工作树文件。 这个设置可以打开菜单操作团队>假设不变和切换菜单操作团队>没有假设不变
  • 分支,创建分支——检查一个分支或创建一个分支。
  • 更改凭证-改变登录凭证取回或推动规范,凭证存储每个URL在Eclipse安全存储。
  • 结帐——付款分支,标签,提交或引用。
  • 择优挑选——择优挑选一个提交到当前签出的分支。
  • 清晰的凭证——明确的登录凭证取回或推动规范,凭证存储每个URL在Eclipse安全存储。
  • 提交——提交修改。
  • 删除取回——删除一个获取规范。
  • 删除推——删除一个推动规范。
  • 配置获取——配置获取规范。
  • 配置推——配置一个推动规范。
  • 删除分支——删除一个分支。
  • 删除存储库——删除一个存储库中。
  • 断开连接——断开连接Git团队提供者从这个项目。 git存储库仍然存在,但已不再是与Eclipse集成。
  • 忽略——添加文件。 gitignore git忽略它们。
  • 导入项目——项目导入Eclipse工作台。
  • 合并——合并分支。
  • 合并工具使用合并工具,解决冲突。
  • 打开属性视图——查看和编辑存储库配置。
  • 从远程分支——拉变化跟踪当前签出当地的分支机构。
  • 远程>获取从——从一个远程存储库获取更改
  • 远程> 获取从Gerrit——从服务器获取改变Gerrit代码审查
  • 远程> ——推动变化到其他存储库
  • 远程> 配置获取从上游——为自动获取配置上游
  • 远程> 配置推动上游——配置上游自动推送
  • 变基——变基一个分支到另一个。
  • 删除存储库——从存储库中删除存储库视图。
  • 重命名分支——重命名一个分支。
  • 重置重置当前的头,指数或工作树。
  • 显示在历史记录——历史视图中显示选中的资源。
  • 存储库视图中显示——库视图中显示选中的资源。
  • 切换到…——开关(也称为结帐)另一个分支或标记。
  • 同步——同步本地和远程分支。
  • 标签——创建、删除标记。
  • Untrack——把资源从git版本控制。 如果你想从工作树点击删除资源删除资源的上下文菜单。


Git的角度和观点

Git的角度来看

探索Window > Open Perspective > Git存储库打开Git存储库探索视角

Git存储库视图

窗口>打开视图> Git > Git存储库打开Git存储库视图详细解释在这里

历史视图

概述

Git版本控制下的资源历史视图是一个commit-centric视图的资源在一个给定的存储库中。 它可以用于执行以下任务:

  • 检查给定文件的改变历史Git版本控制(查看和比较版本的文件在存储库中)
  • 使用不同的搜索条件搜索一定提交
  • 退房的提交
  • 创建分支和标签基于某种承诺
  • 创建基于变化一定提交补丁
  • 重置完整存储库一定提交
  • 的设置和重置quickdiff基线一定提交
打开历史视图

可以打开历史视图

  • 右击>历史上显示视图在Git版本控制下的任何资源浏览器(在所有角度)
  • 右击团队>历史上显示在任何资源Git版本控制的探险家
  • 点击Window > Show View >其他…,然后团队>历史

一旦打开视图,您可以激活与选择按钮的输入视图选择的浏览器自动同步。

组织的历史观点

History视图组织在多个窗格:

Egit-0.9-history-view.png

上面板是提交图显示提交日志倒序(或提交历史)(最新提交上)。 提交以下图,默认情况下两个窗格:左边,修订评论区,显示提交消息和文本Diff文件或文件的提交,并在右边,修订详细信息区域,显示一个表文件修改的提交。

此表的第一列描述的性质变化对每个文件:

添加 文件被提交补充道
修改 文件被提交修改
删除 提交的文件被删除

较低的窗格的内容取决于选择上面板和这个选择改变时自动更新。

两个低窗格可以单独开关在上层窗格中右键点击并选择显示修改评论显示修改细节,分别。

提交以上图,当前的输入是可视化。 输入总是一个工作区资源,一个项目中,一个文件夹或文件。 输入的类型后,路径显示,紧随其后的是库的名称方括号中包含的资源。

用历史的观点
检查提交图

提交图形面积的主要部分历史视图。 默认情况下,它显示了当前签出的承诺及其所有祖先,即列表中的第一项是检查提交。以下图片是用来解释的一些特性History视图:

Egit-0.9-history-view-branchAndMerge.png

提交图表中的每一行对应一个提交。 分支机构、标签和头部显示如下:

  • 当地分支的提示显示为绿色的矩形
  • 远程分支机构的提示显示为灰色的长方形
  • 当地的头部显示为白色长方形
  • 标签显示为黄色的矩形

(我们的示例中没有远程分支机构)。

线左边是实际提交图,显示了亲子关系的提交列表中(每个提交至少有一个家长,除了第一个提交在一个存储库)。可以有叉,这对应于一个分支操作,连接,对应于一个合并操作。 在我们的示例中,有一个分支“实验”提交后创建分支“beforeSplit”,和相同的文件被改变的“主人”和“试验版”分支。 最后提交的内容是一个合并提交,“实验”分支与“主人”合并分支。

确切的改变可以通过标记提交检查,查看修改评论区。 向下滚动时修改评论区域,文本差异的变化将是可见的,在我们的示例中它说的内容Project1 / f1 / file1。 txt从“修改”改为“修改大师”。 在选择下一个承诺(对应于“实验”分支),会显示一个类似的diff,称该文件的内容被改变从“修改”到“修改在实验”。 最新提交的结果合并“实验”到“大师”。 因此,新提交有两个祖先,“大师”和“试验版”行再次加入。

显示和比较版本的文件

如果当前的输入已经是一个文件,右击开放在提交将打开一个编辑文件内容对应当前选中的提交。 如果选择提交的文件不存在,将会显示一条错误消息。 点击与工作树将打开一个比较编辑器比较当前选中的文件内容在工作区中提交的文件内容。

Egit-0.9-history-view-openAndCompare.png

开放与工作树操作也可以通过双击执行提交:如果“比较模式”工具栏按钮(见下文),与工作树将被执行,否则吗开放

可以比较两个提交的内容过滤的电流输入通过选择两个提交和右键单击相互比较。 如果当前的输入不是一个文件,有一个额外的菜单操作在树相互比较。 第一个行动打开Eclipse编辑器相比,第二次打开Git树比较视图

此外,可以选择任意数量的提交并单击鼠标右键开放看到文件的所有版本选择对应提交每版)(一个编辑器将打开。

如果当前的输入不是一个文件,那么不会有菜单操作开放。 然而,可以双击一个条目修改详细信息区域。 如果模式是比较活跃,比较编辑器将打开显示更改的文件双击运行在当前选择的承诺(即diff文件内容的当前选中提交对提交的文件内容的祖先)。 如果比较模式并不活跃,与相对应的文件内容编辑当前选择的承诺。

Egit-0.9-history-view-openAndCompareFromDetails.png

使用过滤器设置

过滤器的设置可以改变使用相应的工具栏动作(见下文)。 默认情况下,“资源”设置是主动的,即只有那些提交列表所示包含当前输入的变化。 如果当前的输入不是一个文件,所有的承诺都是表明,包含任何孩子当前输入的变化。

如果过滤器设置“资源”和当前输入是一个文件,然后提交列表只包含那些包含提交更改的文件。 这是有用的在分析的历史文件。 在某些情况下,然而,它也有助于看到其他承诺不改变实际的文件。 例如,它可能是有趣的,看看是否一个给定的文件是之前或之后的变化其他提交的文件本身并没有改变。 在我们的示例中,我们可能想知道是否有一个特定的变化是“前”或“后”提交标记为“Project1。” 通过改变过滤器设置从“资源”到“库”,这很容易做到:

Egit-0.9-history-view-filtersettings.png

其他两个设置的行为(“文件夹”和“项目”)是类似的,它们包括提交改变父文件夹中的任何资源当前的输入或任何资源在项目当前的输入,分别。 在上面的例子中,如果过滤器设置将使用“项目”,提交“Project2添加到存储库”将不会显示,这并不能改变什么是项目当前的输入(Project1)/ f1 /中。

另外,为了看到所有提交有关一个特定的项目,一个可以改变历史视图输入项目。 然而,file-specific菜单操作将不可用。

工具栏操作

历史上第一个四个按钮的标准按钮刷新视图的工具栏,与选择,将和导航的历史。

找到

如果“找到”工具栏按钮,将显示一个搜索栏下方的视图,允许搜索提交提交日志。 根据设置在搜索栏下拉列表提交的标题、评论,作者或提交者是搜索。

发现搜索热门标签在大胆的“下一个”和“前”按钮允许跳转到下一个或前提交匹配搜索条件:

Egit-0.9-history-view-search.png

过滤器设置

接下来的四个按钮切换视图工具栏控制如何过滤显示的提交对当前输入:
Egit-0.9-history-view-config.png
按钮做单选按钮,即必须下来4个按钮之一。

  • 如果“库”按钮,提交日志不是过滤并显示所有从当前可获得提交检出分支(或全部提交,见下文“分支”行动)
  • 如果“项目”按钮,显示所有提交的提交日志过滤影响任何资源的项目包含当前的输入
  • 如果“文件夹”切换,显示所有提交的提交日志过滤影响父文件夹中的任何资源的当前的输入
  • 如果“资源”按钮,提交日志过滤只显示提交影响当前输入;视图菜单项显示>遵循重命名允许切换是否重命名选定的资源应遵循的过滤器

请注意,并不是所有的组合过滤设置和电流输入有意义;例如,如果当前的输入是一个项目,“项目”选项实际上是一样的“资源”选项。

比较模式

Egit-0.9-history-view-comparemode.png

下一个按钮再次切换,激活“比较模式”。 如果是,某些双击操作(见上图)将打开一个比较编辑器,而不是正常的编辑器。

所有分支

Egit-0.9-history-view-allbranches.png

这种切换激活“所有分支”模式。 默认情况下,只有那些提交所示提交日志,可以达到从当前签出的承诺,即承诺图以当前签出的提交和更新提交没有显示。 如果这个按钮,所有提交将提交日志中显示。 这是来自我们的示例见下图。 分支“beforeSplit”目前签出;通过激活切换,较新的分支机构将成为可见:

Egit-0.9-history-view-allbranchesToggle.png

视图菜单操作
配置视图

大部分可以在视图菜单,工具栏操作。 此外,可用以下切换:

Egit-3.1-HistoryViewSettings.png

和滤子菜单允许配置过滤器设置

Egit-3.1-HistoryViewSettingsFilter.png

参参“额外”切换的可见性一定期间创建等操作取回,变基,合并,例如FETCH_HEAD ORIGIN_HEAD…… 这可以帮助消除混乱的历史观点。

“历史记录”切换显示Gerrit复习笔记的分支/ ref历史视图

“重命名”切换是否重命名选定的资源应遵循历史上看来,如果使用“资源”过滤器。这个参数也可以在偏好中配置向导首选项> > Git >历史>遵循重命名

“修改评论”切换的visiblity修改评论区。

“修订细节”切换修改详细信息区域的可见性。

如果“相对时间”检查,提交日期显示为相对日期而不是绝对日期。

“电子邮件地址”切换显示提交者的电子邮件。

打开子菜单“修改评论”子菜单,更多的切换控制的外观修改评论区:

“标签序列”允许显示/隐藏的线指示的最后标记列表中的祖先的提交和下一个标签的继任者的名单提交,即标记前/后提交。

评论的“包装”和“填补段落”切换控制内的格式修改评论区。

“修订细节”和“修改评价”也可以右键点击提交图区域。

“标记序列”、“包装评论”和“填补段落”也可以右键点击修改评论区。

上下文菜单操作

提交的上下文菜单图面积略有不同,这取决于当前文件或文件夹/项目,分别。 以下菜单项总是可用:

Egit-1.2-historyview-menu.png

如果当前的输入是一个文件,还有一些其他的可用操作;如果选择了一个承诺,有三个额外的选项:

Egit-1.2-historyview-file-menu.png

如果两个选择提交,菜单会出现如下:

Egit-1.2-historyview-2files-menu.png

如果超过两个选择提交,只有“开放”行动和“Quickdiff”菜单可用。

与工作树

这个动作只有如果当前输入一个文件和一个提交被选中。 这将打开一个比较编辑器比较选择提交的文件内容与文件内容在工作树。

相互比较

这个动作只有如果当前的输入是一个文件,并选择两个提交。 这将打开一个比较编辑器比较选定的提交的文件内容。

开放

这个动作只有如果当前的输入是一个文件。 这将打开一个编辑器为每个选择提交显示文件的内容提交。

结帐

这个检查当前选中的提交。 为这个承诺如果一个分支存在,分公司签出,如果存在多个分支提交,将显示一个对话框,询问哪个部门应该检出。 如果不存在分支机构提交,提交将签出头会分离

创建分支…

创建一个分支在当前选择的提交。 会显示一个对话框要求分支机构名称和新创建的分支是否应该检出。

删除分支

这一行动将使当前选中的承诺如果一个分支存在,没有检出。 如果有一个分支提交,没有检出,这一行动将立即删除这个分支。 如果存在多个这样的分支,将显示一个对话框,询问哪些分支应该删除。 如果提交成为遥不可及的对“删除分支”会显示一个确认对话框,防止意外unreachability提交。

创建标签……

创建一个标签在当前选择的提交。 一个对话框将显示要求标签名称和标签信息。

创建补丁……

此操作不可用的第一个提交存储库。 它将创建一个补丁包含当前选中的变化提交,提交的前任相比。 将显示一个对话框,询问是否应该创建补丁文件或剪贴板和是否使用Git的补丁格式通用补丁格式。

做出最佳选择

应用变化引入的选择上提交当前签出的提交。

回复提交

恢复的变化选择提交上引入了通过创建一个新的提交当前签出的提交。

合并

合并选定的提交到当前签出的分支。

变基上的

重置当前签出分支的选择提交。

重置>软/混合/硬

这一行动重置存储库包含当前输入当前选中的提交。 根据子菜单的选择,一个柔软,混合,或将执行硬重置。

涉嫌“基线来案Quickdiff >重置Quickdiff头
涉嫌“基线第一案Quickdiff >重置Quickdiff父母的头上

这两个行为涉嫌“基线库的头或案设置quickdiff父母的头上。 这些行动总是可用,即使多个提交被选中。

Quickdiff >设置为基准

这个动作只有如果选择了一个承诺,它将圣quickdiff基线库的选择提交。

复制

的id复制当前选择提交或提交到剪贴板。

显示修改评论

切换修改评论区域的可见性。

显示修改细节

切换修改细节区域的可见性。

包装的评论

只有当右键单击修改评论区。 如果活跃,评论将auto-wrapped填补显示区域,否则提交消息的包装将会被使用。

填充段落

只有当右键单击修改评论区。 如果活动,提交消息将显示没有不必要的换行符。

拖放支持

你可以拖拽提交提交到一个图Mylyn任务或到你的硬盘上的文件夹。 在这两种情况下,EGit将自动创建一个补丁你可以附加到一个错误或存储在磁盘上。

使用修订细节区域

修订细节区域显示一个表的文件被选中提交更改。 选择上下文菜单操作显示注释选中的文件将在(只读)编辑器中打开文件并显示一个注释统治者和提交文件中的每一行的作者信息。 看到本节

同步视图

菜单命令团队>同步工作空间将启动Synchronize视图。 这个视图允许您检查资源之间的差异在本地工作区和一个本地或远程跟踪分支。 或者你可能比较本地和远程跟踪分支。 比较两个远程跟踪分支以及菜单命令在Synchronize视图中尚未公布这个EGit版本,将在未来的版本中提供。

这是Git同步视图是什么样子:

Egit-0.9-synchronize-overview.png

同步状态

Synchronize视图显示同步状态的资源在你的工作区或当地分支相比,在另一个本地或远程跟踪分支代表一个分支的状态从一个远程存储库。 这种状态显示通过使用图标,也可以配置为显示状态为文本添加到资源名。

Egit-0.9-synchronize-overview-labels.png

图标的描述如下表所示:

图标描述
Egit-0.9-synchronize-incoming-add.png传入的增加意味着资源添加到目标分支。
Egit-0.9-synchronize-incoming-change.png传入更改文件意味着改变了在目标分支。
Egit-0.9-synchronize-incoming-deletion.png传入删除意味着一个资源被删除从目标分支。
Egit-0.9-synchronize-outgoing-add.png一个外向而且意味着文件添加到您的工作区或源分支和目标还没有分支。
Egit-0.9-synchronize-outgoing-change.png即将离任的变化意味着工作区中的文件被改变或源分支。
Egit-0.9-synchronize-outgoing-delete.png一个外向删除资源,您的工作区中已被删除或源分支。
Egit-0.9-synchronize-conflict-add.png添加了一个冲突的增加意味着资源在您的工作区或源分支和分支目标。
Egit-0.9-synchronize-conflict-modify.png一个产生冲突的变化意味着工作区中的文件已经改变或本地分支,在目标分支。 需要一个手动或自动合并。 同样,任何视图中的条目包含孩子的冲突也会装饰着冲突图标。 这样做是为了使冲突容易找到。
Egit-0.9-synchronize-conflict-delete.png删除冲突意味着资源的工作区中被删除或源分支和目标分支。
模式

Synchronize视图可以使用模式过滤使用工具栏动作或视图的下拉菜单中的菜单项。 模式可用于只显示传入、传出或冲突性的变更。

Egit-0.9-synchronize-mode.png

模型

Synchronize视图可以显示不同的模型表示的资源。 每个产品可能包含它自己的特定的表示。 Eclipse SDK附带三个模型:

工作空间模型
显示资源基础模型。 布局选项可以控制这个模型从Preferences对话框下拉菜单。 的布局选项工作空间模型
  • 平面布局
    显示所有的不同步资源指导孩子们他们的项目。
    树布局
    显示了资源的层次结构,因为它显示在Project Explorer中。
    压缩文件夹
    按项目文件夹,然后分组显示更改。 这个结果在一个层次结构,最多三层被压缩到一个文件夹路径水平(类似于一个Java包)。
Java模型
显示了一个基于Java的模型(类似于出现在Package Explorer)。
Git提交
显示一个Git提交基础模型。 这个模型显示了由提交分组的更改方便看到谁发布的,为什么。 即将离任的变化,您可以创建提交 创建提交 。 Git提交的显示格式描述可以在首选项配置 团队> Git >标签装饰 在选项卡 其他

除了模型外,还有一个平面表示它显示所有失去同步的元素作为顶级元素。

导航

Synchronize视图提供了浏览工具栏动作的变化的观点。 这些行动不仅导航文件之间也从改变改变在一个文件中。

Egit-0.9-synchronize-navigation.png

树在Synchronize视图可以很容易地扩大和崩溃的工具栏。

Egit-0.9-synchronize-expand-collapse.png


Git树比较视图

这一观点将会打开的行动(见比较的内容)。 当从一个资源(例如,一个项目或文件夹),它将类似于工作区中的资源。 然而,通常的图标文件将取代图标显示改变状态(添加、删除、更改或不变)。

变化可以浏览并双击一个文件将打开一个比较编辑这个文件(这只在“改变”文件是有意义的,在添加或删除文件的情况下,比较编辑器的一边是空的,而不变的文件将显示相同的内容编辑器的两边):

Egit-0.11-GitTreeCompareView.png

可以隐藏不变文件通过单击“隐藏文件以同样的内容”按钮的工具栏。

Git树比较视图也可以开始没有工作区资源作为起点(例如通过比较两个提交历史视图,当输入的历史视图是一个存储库,而不是一个工作区资源)。 在这种情况下,显示了完整的内容存储库和两个项目和文件夹显示为简单的“文件夹”图标:

Egit-0.11-GitTreeCompareViewRepo.png

Git分期视图

Egit-3.1-StagingView.png

这个视图提供了一个等效的git状态显示在工作树中所做的更改。 Unstaged变化尚未转移到git索引中显示Unstaged变化窗格中,变化已经“添加”(举行)Git索引所示阶段性的变化窗格。 默认情况下这些窗格显示在一行布局,它可以改变布局的一列列布局选择。 默认上演,Unstaged更改窗格显示文件的完整路径。 他们可以配置的显示文件名的第一个选项显示文件名第一,紧随其后的是目录文件都位于。

双击修改的文件打开一个视图进行比较。 如果解雇“unstaged”窗格视图将显示尚未上演的变化进行比较。 当发射的“上演”窗格中会显示已经上演了变化。 在编辑器中打开一个文件,使用开放式工作区版本行动文件的上下文菜单。

舞台上的一个文件,将它拖Unstaged变化面板的上演了页面窗格。 另外,使用添加到Git索引行动在文件的上下文菜单Unstaged变化窗格。 的在Git索引替换为文件行动将会替换所选文件在工作树。 如果文件是unstaged,它将被重置。 如果是策划,工作树版本将取代了版本的Git索引。

unstage文件,将其拖阶段性的变化面板的Unstaged变化窗格。 另外,使用删除从Git索引行动文件的上下文菜单。

提交行动只提交了更改——类似git提交在本地git。 一个完整的提交消息编辑器允许编辑提交的提交消息。 提交对话框相比,分段视图可以保持开放,而做的改变。 这允许增量地编写提交消息随着变化。 正在编辑的提交消息相关联的存储库,登台与看法。 它并不会永久地存储会迷路,如果分期视图或Eclipse都关门了。

提交,按按Ctrl + Enter('命令+输入在Mac OS X)提交消息文本字段,或点击提交承诺,推动按钮。

Staging视图的视图菜单允许配置分期视图

Egit-3.1-StagingViewSettings.png

如果你工作在一个大的变化和许多文件显示在Staging视图可以使用“过滤器文件”过滤字段将过滤的内容分期视图只显示您输入的文件匹配滤波器。

Egit-3.1-StagingViewFilterFiles.png

部分暂存

有时是有用的只提交文件的一些变化。 一个例子是当工作特性和注意到一个错字或小虫,这是与功能无关。

只提交某些变化,这些变化必须举行了第一次。 要做到这一点,双击文件Unstaged变化窗格。 这将打开编辑器进行比较。 左边是工作区版本,右边是指数(举行)版本。

双方比较编辑器是可编辑的。 当改变的东西在右边(指数)和储蓄,文件将会出现阶段性的变化面板和承诺时,内容将被提交。

阶段一群改变线路,复制当前的改变从左到右可以使用工具栏按钮(箭头图标)。

Git Reflog视图

Egit-1.2-reflog-view.png

Reflog视图显示了所选的Git Reflog库。 它支持显示reflog特定分支通过选择超链接在视图的右上方裁判的名字。 双击或选择上下文菜单操作在提交查看器在reflog入口提交查看器中打开相应的承诺。 上下文菜单操作结帐付款选择提交和吗头会分离

Git url

Git url通常由传输协议方案,远程服务器的地址在远程服务器和存储库路径也和一些身份验证协议的用户ID。

EGit支持以下协议

Git url时使用


Git引用

Git是不久也被称为引用参考文献
他们组成

  • 分支机构
  • remote-tracking分支
  • 标签

他们都以一个路径使用“/”作为路径分隔符,从“参考文献”。

  • 当地分支机构开始“refs /头/”
  • 远程跟踪分支refs /遥控器/”开始。 远程跟踪分支代理分支机构位于远程存储库,以便他们去年交通运行状态的时候可以查询也当没有可用连接到存储库(离线)。
  • 标签从“refs /标签/”

裁判的名字可以缩写只要缩写形式是独一无二的。
如。

  • “主”是“refs /头/大师”的简称
  • “起源/主”是“refs /遥控器/产地/大师”
  • 是“v1.0.1 refs /标签/ v1.0.1”

还有一个参数量的“保留”的名称,对于某些情况下很有用:

裁判的名字备注
指向当前付款承诺
FETCH_HEAD指向最后获取操作的结果
ORIG_HEAD点前签出的提交合并或变基操作就开始了

为Ref名称和完整列表的顺序优先级如果多个引用相同的速记形式的部分“指定的修正”部分git rev-parse

Refspecs

“refspec”被取回,推动业务描述远程之间的映射裁判和地方裁判。 语义定义本地分支或标签是如何映射到远程存储库中的分支或标签。 在本地git加上一个冒号的格式< src >:< dst >,之前一个可选的加号,+表示强制更新。 EGit他们可以显示和编辑的表格形式推动裁判规范获取参考规范和其他对话框。

“左”的RefSpec称为源和“右”的一面就是目的地。 取决于RefSpec用于获取或推动,源和目标不同的语义:推动RefSpec,源代表一个裁判在源库和目标代表一个裁判在目标存储库。

推动Refspecs

为推动RefSpec可以一个典型的例子

HEAD:refs/heads/master

这意味着当前签出分支(头所指的参考,看看Git引用)将被推到主分支的远程存储库。

获取Refspecs

取回RefSpec可能是一个典型的例子

refs/heads/*:refs/remotes/origin/*

这意味着所有分支从远程存储库将被获取到相应的远程跟踪分支的本地存储库。

遥控器

遥控器是用于管理存储库(“遥控器”)的分支您跟踪您的存储库。

当定义在EGit遥控器

远程首先定义了一个的名字存储库的分支你跟踪,这非常重要,因为你可能想要跟踪分支从不同的存储库名称有助于了解库处理某些操作。 除了Refspecs对于一个给定的远程定义一个指定分支和标签的映射在你的本地存储库分支和标签在远程存储库中。 你可能想要使用不同的映射入站或出站因此有运输操作编辑器定义获取和推动EGit中可用的配置。

Git忽略

.gitignore文件位于工作树指定文件,故意不应该追踪的git。 他们只关心文件没有追踪的git。 为了忽略未提交的更改已经跟踪文件参考假设不变的行动

在每一行.gitignore文件定义了一个模式。 Git检查忽略模式后工作树的层次结构从最高到最低。 模式定义在更高的水平.gitignore文件被覆盖的定义在更低的水平。文件应当忽略所有的在一个给定的项目通常包括在项目的存储库轻松地分享他们的团队。

模式格式定义:

  • 忽略空白行
  • 开头的行#作为评论
  • 可选的前缀!否定的模式。 排除的文件再次成为包括匹配之前的模式。 模式以斜杠只匹配目录而不是文件或符号链接。
  • 模式不包含一个斜杠被当作外壳水珠模式匹配路径相对的位置。 gitignore文件
  • git将模式定义在壳牌的粘稠:(3)
  • 通配符不匹配的模式/在路径名
  • 主要削减匹配路径名的开始

EGit的忽略 菜单操作增加了选择的资源.gitignore资源文件的父目录。 进入其他忽略模式使用一个文本编辑器。

Git获取工厂PDE构建

EGit PDE工具的一部分,PDE构建获取工厂Git中org.eclipse.egit.fetchfactory插件。

映射文件的文件格式:type@id(版本)= GIT,arg游戏

在哪里arg游戏是一个以逗号分隔的键-值对。

接受arg游戏包括:

  • 标签*——强制Git标签
  • 回购*——强制回购位置
  • 路径-可选路径相对于回购它指向的元素(否则它假定库根元素)
  • 预先构建的——可选布尔值,指示的路径指向一个预先构建的包在存储库中

获取被实现为一个三步过程:

  • 存储库是当地盘克隆。 如果它已经存在,它假定以前克隆新的提交将获取
  • 指定的标签将在当地签出克隆
  • 路径的内容将被复制到最终构建的位置
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值