2013-02-14 57 views
1

我正在从Eclipse中从GIT远程存储库克隆的项目。 Eclipse eGit插件允许您在没有真正了解GIT的任何内容的情况下开始工作,这正是我所处的位置。我最终意识到,当我做一个“与HEAD修订版比较”时,我并不像我第一次想到的那样与远程存储库进行比较,而是使用本地存储库进行比较。我现在明白我需要从远程存储库中获取更新,但不清楚我的本地更改会发生什么。我没有提交这些更改,部分原因是我认为我可能正在更新远程存储库(现在我意识到我不会),但部分原因是我发现Package Explorer文件修饰(“>”)在识别文件时非常有用我已修改。如果我承诺,那么我认为这些迹象将会消失。egit pull与未提交的更改

我的问题:

  1. 如何更新我的本地库,而不会失去我的变化?
  2. 我可以做到这一点,而不会丢失我修改过的文件指示器吗?

更新:我想我明白如何一些这方面的工作,但我真的现在失去了,特别是工作空间和(本地)存储库之间的关系。

我用Team-> Pull来更新我的存储库。由于我没有提交任何更改,我预计这会在没有冲突的情况下工作,但会将工作区和回购之间的所有更改标记为冲突(混淆#1)。

我想我需要使用Team-> Synchronize将更改带入工作区,就像我对其他VCS一样。当我这样做的时候,我看到了这些变化,但是甚至没有冲突更新已经应用到工作区,并且没有“更新”操作来执行此操作,所以我不知道如何应用它们(混淆#2) 。

对于冲突更新,我手动将更改合并到工作区副本中,并使用“标记为合并”,但这似乎什么都不做。冲突未被清除。我预计在这一点上,这种变化只会是工作空间中的一个未经改变的变化(混淆#3)。

我在其他地方看到,为了消除冲突,我应该使用Team-> Add和Team-> Commit,但我不想像我最初解释的那样提交我的更改(混淆#4)。

你可以看到我很困惑!任何帮助都感激不尽。

回答

1

如果混帐拉不工作,你可以使用这个:

git stash 
git pull 
git stash apply 

不知道Eclipse支持藏匿处,所以你可能需要使用命令行。