1

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

我的问题:

  1. 如何在不丢失更改的情况下更新本地存储库?
  2. 我可以在不丢失修改后的文件指示器的情况下执行此操作吗?

更新:我以为我了解其中的一些工作原理,但我现在真的迷路了,特别是工作空间和(本地)存储库之间的关系。

我使用 Team->Pull 来更新我的存储库。由于我没有提交任何更改,我希望这可以正常工作,但它会将工作区和 repo 之间的所有更改标记为冲突(混淆 #1)。

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

对于有冲突的更新,我手动将更改合并到工作区副本中并使用“标记为合并”,但这似乎无济于事。冲突未清除。我希望此时的更改只是工作区中未提交的更改(混淆#3)。

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

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

4

1 回答 1

1

如果 git pull 不起作用,你可以使用这个:

git stash
git pull
git stash apply

不确定 Eclipse 是否支持 stash,因此您可能必须使用命令行。

于 2013-02-14T08:52:04.683 回答