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

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

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

但是,当然,git和Subversion是完全不同的,所以我的工作stream程必须改变。 使用EGit,“Team Sync”仅用于查看本地文件和远程存储库之间的更改(即,在推送到远程之前)。 我需要一种方法来查看自上次提交到本地存储库以来所做的更改。 我通常甚至不关心(重新)审查变化之前推远程(如果我这样做,我更喜欢简单的等价的git log ,看看我将推动什么提交)。

如果我右键点击我的项目并selectTeam->Commit ,我会看到一个几乎可以做所有事情的窗口(select文件来分阶段,提交,写一个提交消息,修改以前的提交等) 。 它不允许我做的是快速轻松地在比较编辑器中查看所有的更改。 我不敢相信这个能力不存在! 似乎我需要双击每个单独的文件,检查更改,closures比较编辑器,然后双击下一个文件。 这是荒谬的!

TL / DR – 我正在寻找一个简单的GUI等价物(在Eclipse中),使用git vimdiff (命令行中的vimdiff是一个使用vimdiff作为“difftool”循环的git别名所有修改后的文件),然后是git commit (可能是一个git add或两者之间的)。

如果没有人有一个好的解决scheme,我很好奇其他人如何处理他们提交工作stream与EGIT。 我已经从命令行相处得很好(不是说Eclipse对此感到高兴),但是我不能相信EGit和我看起来一样近乎无用。 也许我的google-fu没有以前那么强大?

你知道'Git Staging'的观点吗? 它跟踪所有已更改的文件,您可以随时查看更改。 (这可以比使用提交对话框好一点)

另一种方法是在不审核的情况下提交所有更改,然后使用历史logging视图比较两个提交(只需select最后几个提交,右键单击并select“相互比较”)。 这样你不必保持双击单个文件。 如果你需要改变某些东西,你总是可以“修改”最后一次提交。 (我通常遵循这个方法)

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

更新:我已经在最新的Eclipse中尝试了这一点,并且据我所见,它工作正常。 就是这样:

在写这个的时候,Eclipse Juno 4.2是你应该去的版本。 在下载页面上,您可以根据自己的需要select多个软件包。 “Java开发者的Eclipse IDE”与EGit捆绑在一起,但是您也可以使用Eclipse Marketplace(在“帮助”菜单下)将EGit安装到任何发行版中。

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

右键单击项目 – >团队 – >共享项目 – > Git

现在执行以下操作:

  • 切换到团队同步透视图。
  • 点击同步视图中的小同步button。
  • selectGit
  • select一个合适的分支进行同步,如refs/remotes/origin/master
  • 确保检查“包括本地未提交的比较变化”框
  • 点击完成

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

Eclipse Juno截图 -  EGit同步视图