EGit推向遥控器与我期望的相反

时间:2013-12-02 20:21:30

标签: eclipse git

这就是我想要做的事情:

  • 使用Eclipse和Git(EGit)
  • 使用EGit将远程存储库克隆到我的本地副本
  • 对我的本地副本进行更改
  • 将这些更改推送回远程存储库

这就是我所看到的:

  • 在推送之后,远程存储库上的分阶段更改与我所做的更改相反。

让我举个例子,也许有人可以告诉我哪里出错了。

  • 我创建了一个名为C:\GIT\remote的目录,其中包含一个名为readme.txt的文件,其中包含字符串Hello World!
  • 我将其转换为Git存储库,我暂存readme.txt文件,它显示:

    new file mode 100644
    @@ -0,0 +1 @@
    +Hello World!
    
  • 我在远程存储库中提交此更改。远程存储库不包含未分级的更改

  • 启动Eclipse,import->Projects from Git->Clone URI。位置URI = C:\GIT\remoteNextNext,目标目录:C:\GIT\localNextImport as General ProjectNext,{{ 1}}

  • 这将在Finish中创建一个git存储库,其中包含C:\GIT\local文件和.project文件。正如所料。

  • 在Eclipse中,我打开readme.txt文件并对其进行编辑以说出readme.txt。保存。

  • 右键单击Project Explorer中的项目,然后:Goodbye World!

  • 要更改的文件有:Team->Commitreadme.txt。我输入提交消息“进行了更改”,然后点击.project

  • Eclipse现在显示本地存储库在远程存储库之前是1次提交。 (我是对的吗?)

After first local commit

  • 右键单击Project Explorer中的项目,然后:Commit,它显示我的评论和远程存储库详细信息:

Push window

  • 现在,当我查看远程存储库上的Staged文件时,我看到了:

Reversed patches

它显示需要删除Team->Push to Upstream文件(而不是添加),并且对.project文件的更改应该与我刚才所做的更改相反:

readme.txt

@@ -1 +1 @@ -Goodbye World! +Hello World! 文件包含字符串“Hello World!”。根据文件的内容,分阶段补丁甚至没有意义。

我很困惑。

1 个答案:

答案 0 :(得分:2)

不,这些是远程的分阶段变化。不是提交历史记录(git日志)。这是两件不同的事情。

“Git GUI”向您展示了直接提交到远程存储库以使其与远程存储库的工作目录保持同步所需的更改,该工作目录仍处于旧状态 - 已过期。

为了避免这种混淆,开发人员经常使远程存储库成为一个裸存储库 - 一个没有工作目录的存储库。然后它只能被推入和拉出 - 不直接承诺。