Eclipse'Git Repository'视角与'团队同步'

时间:2012-04-04 09:06:16

标签: eclipse egit

我正在尝试合理化两个似乎相关的视角(或者至少提供非常相似的功能):'Git Repository'视角(我在添加EGit后获得)和'Team Synchronizing'视角(其中)我认为是EE发行版的一部分。)

据我所知,我能够让 Git Repository 工作(使用GitHub),或至少大部分功能:'Git Staging'窗口工作正常,我能够通过将文件从“未暂存的更改”拖动到“暂存的更改”然后单击“提交”图标来提交。然后我可以通过右键单击工作区 - >遥控器 - > origin-> url从'Git Repositories'窗口推送我的更改,然后选择Push from menu(是'正确'程序? )。

通过“团队同步”的观点,即使设置它,我也没有运气。一旦选择'Synchronize ...'菜单,Git,然后我看到一个表(它是什么?)。我正在为Destination尝试各种值(否则,无法点击Finish按钮),但无论我做什么,它都会告诉我所有项目都没有“更改”。

右键单击项目并选择“团队”时,还有许多上下文菜单项。这些是什么?

2 个答案:

答案 0 :(得分:4)

在CVS中,Team Synchronize是管理传入和传出更改的唯一理智方式。您可以更新/合并传入更改并从此视图提交传出更改。由于每次提交都是离散的并且它是非原子的,因此视图适用于此工作流程。

在EGit中,您已经有了添加,提交,推送,拉取和合并的明确操作。因此团队同步很大程度上超出了正常的工作流程。它的行为非常类似于补丁的美化同步 - 您选择要比较工作目录的分支,并显示差异。然后,您可以集体或单独地应用这些更改,但它不会获取上下文,即它不会创建合并点或诸如此类。

所以除非出于特殊原因,否则你应该训练自己不要使用。例如,也许你有两个分支A& B.有人对B进行了更改,您只需要一小部分,因此您可以使用Team Sync来显示差异,并仅应用您需要的差异。或者你可能只是想要压缩分支B上的所有更改并在A中将它们称为单个提交。然后你可能会使用Team Sync而不是在你要打败B或者它的远程分支时使用rebase

答案 1 :(得分:3)

根据我的理解,“Git存储库”透视图用于将文件从工作目录提交到本地Git存储库,而“团队同步”透视图用于将本地存储库与远程存储库同步。

我最初也发现这一点令人困惑,因为在使用SVN时,“团队同步”视角用于提交/更新文件。直到我注意到在EGit的团队同步视角中,它没有显示提交/更新按钮,而是有拉/按钮,用于同步两个Git存储库。

对于“Team”上下文菜单下显示的各种选项,它们对应于一堆Git操作。在使用EGit之前,我建议阅读一些关于Git操作原理的内容。 http://git-scm.com/doc将是一个良好的开端。