Eclipse和EGit:如何在提交到* local * repository之前轻松查看对所有已修改文件的更改

时间:2012-06-29 02:49:20

标签: eclipse git egit

我正在使用Eclipse Indigo SR2和(内置)EGit插件v.1.3.0.201202151440-r,并且在提交之前无法找到任何方法来轻松查看我的所有更改。

我使用Eclipse和SVN多年,这总是很容易做到的。我通常右键单击我的项目,选择Team->Synchronize,双击第一个更改的文件(在Team Sync透视图中),然后点击 Ctrl - 反复检查一个文件中的所有更改,然后继续执行下一个文件,因为我写了我对提交消息的更改的摘要。

但是,当然,git与Subversion非常不同,所以我的工作流程必须改变。使用EGit,“Team Sync”似乎仅用于查看我的本地文件和远程存储库之间的更改(即,在推送到远程之前)。自从我上次提交到 local 存储库以来,我需要一种方法来查看更改。在推送到远程之前,我通常甚至不关心(重新)审查更改(如果我这样做,我更喜欢简单的等效git log来查看我要推送的提交内容。)< / p>

如果我右键单击我的项目并选择Team->Commit,我会看到一个窗口,它几乎我需要做的一切(选择要暂存,提交,写入的文件)提交消息,修改先前的提交等)。 允许我做的是快速轻松地在比较编辑器中查看我的所有更改。我无法相信这种能力不存在!我似乎需要双击每个单独的文件,查看更改,关闭比较编辑器,然后双击下一个文件。那太荒谬了!

TL / DR - 我正在寻找一个简单的GUI等价物(在Eclipse中)来执行我可以使用git vimdiff从命令行轻松完成的操作(其中vimdiff是使用vimdiff作为gitdiff的git别名) “difftool”循环遍历所有已修改的文件),然后是git commit(中间可能有一个git add或两个)。

如果没有人有一个好的解决方案,我很好奇其他人如何使用EGit处理他们的提交工作流程。从命令行开始,我一直都很顺利(不是Eclipse对此感到高兴),但我无法相信EGit在我看来几乎没用。也许我的google-fu不像以前那么强大?

3 个答案:

答案 0 :(得分:38)

here你可以看到工作树和任何给定引用之间的差异。也许您应该尝试Eclipse / EGit的最新版本(Juno),看看它是否有更好的效果?

更新:我在最新的Eclipse中试过这个,据我所知,它运行正常。方法如下:

在撰写本文时,Eclipse Juno 4.2是您应该选择的版本。在下载页面上,您可以根据需要在多个包中进行选择。 “Eclipse IDE for Java Developers”与EGit捆绑在一起,但您也可以使用Eclipse Marketplace(在“帮助”菜单下)将EGit安装到任何发行版中。

  • 将项目导入Eclipse后,请确保项目“共享”:

右键单击项目 - &gt;团队 - &gt;分享项目.. - &gt; GIT中

现在执行以下操作:

  • 切换到团队同步视角。
  • 单击“同步视图”中的“小同步”按钮。
  • 选择Git
  • 选择一个合适的分支进行同步,例如refs/remotes/origin/master
  • 请务必选中“在比较中包含本地未提交的更改”框
  • 点击完成

现在,更改一些文件并观看它们出现在“同步视图”中。双击更改的文件以查看差异(如下面的屏幕截图所示)。

Screenshot of Eclipse Juno - EGit Synchronize View

答案 1 :(得分:24)

您是否了解“Git Staging”视图。它会跟踪所有已更改的文件,您可以随时查看更改。 (这可能比使用提交对话框好一点)

另一种方法是在不进行查看的情况下提交所有更改,然后使用历史记录视图比较两个提交(只需选择最后一个提交,右键单击并选择“相互比较”)。这样您就不必双击单个文件。如果你需要改变一些东西,你可以随时“修改”最后一次提交。 (我通常遵循这种方法)

答案 2 :(得分:1)

我是从Eclipse Oxygen开始编写的,但它也应适用于其他版本。

  1. 具有团队同步视图的选项1:右键单击项目>与...进行比较>提交。即使您没有将其提交到存储库,也可以在此处选择最新的提交。
  2. 具有差异视图的选项2:如果要不提交就查看“差异”版本,可以通过右键单击您的项目>团队>藏匿>藏匿更改>选中包括未跟踪的文件来实现。这会将您的所有更改保存到存储中。然后,您将右键单击项目>团队>存储区>选择您保存的存储区。您单击右上角的绿色箭头以重新应用所有存储在代码中的更改。在相同的隐藏窗口中,您将在右下角看到“差异”标签。单击差异选项卡将以红色/绿色突出显示的差异样式显示您的更改。我希望有一种无需隐藏即可生成差异视图的方法,但这是我发现的唯一解决方法。