如何在eclipse中使用egit同步master和origin / master?

时间:2011-09-15 10:46:30

标签: eclipse git egit

我创建了一个本地git存储库,并将其中的更改推送到我使用

创建的gitosis远程
git init my_git
git remote add origin git@server:my_git
... various adds and commits
git push origin master:refs/heads/master

现在,我在eclipse中本地编辑和提交更改,当我提交时,我看到(使用qgit)它将我的master分支移动到该版本。

但是,它还告诉我origin/master是以前的版本。

命令行上的

git status告诉我一切都是最新的:

$ git status
# On branch master
nothing to commit (working directory clean)

我可以看到版本与

的区别
git diff origin/master

如果我在命令行上git push,那么qgit会告诉我origin/master分支现在与master位于同一位置。

我无法弄清楚如何在eclipse中配置“远程/推送”或“远程/配置推送到上游”对话框,以执行与命令行git push相同的操作来移动{{1与origin/master

处于同一级别

我总是必须执行命令行推送才能使masterorigin/master到达同一位置。

Q1。谁能告诉我如何在日食中做到这一点?

Q2。执行eclipse版本的master的命令行版本是什么?

Q3。我的假设是git push是我的本地HEAD指针而master是远程服务器对当前HEAD的正确视图吗?

2 个答案:

答案 0 :(得分:2)

通过egit's documentation的相关部分,你可以:

  • 单击“添加所有分支规范”按钮,将所有本地分支推送到远程存储库中具有相同名称的分支,或
  • (更安全的选项)只需在“来源参考”和“目的地参考”下选择master即可推送master分支

远程跟踪分支origin/master通常由git fetch更新(这是git pull所做的一部分),但是使用命令行git,远程跟踪分支是成功推送到正在跟踪的远程存储库中的分支。 Egit可能是基于git的纯Java实现之一,而不是命令行工具,而不是以相同的方式更新origin/master成功推送。如果是这种情况,您只需JGit即可更新origin/master


更新:看来这是EGit中的一个已知错误(不是底层的JGit) - 错误报告在这里:

答案 1 :(得分:1)

对此进行了更新,我使用的是eclipse Helios,并且已经使用最新版本的egit升级到Indigo,并且修复似乎是活动的,因为我不再需要在推动后拉动。