【问题标题】:can't push upstream using EGit无法使用 EGit 向上游推送
【发布时间】:2012-08-29 05:11:28
【问题描述】:

我在 Eclipse 中使用 EGit 来拉和推。

我的配置是:

  [remote "origin"]  
    fetch = refs/heads/*:refs/remotes/origin/*
    push = refs/heads/*:refs/remotes/origin/*

本地分支是主分支 Remote Tracking 分支是 origin/master

当我推送时,它会显示“origin/master:master[最新]”。实际上远程分支不是最新的。如果我配置错误的方式,我会徘徊。

有时我更改不同的配置,我会得到“创建一个新分支”(这是错误的,因为我只是推送一些提交)或“拒绝 - 不快进”(这很奇怪,因为我是唯一的用户的远程存储库,我已经在推送之前获取)

【问题讨论】:

  • 我之前还有一个远程分支origin/master,被删除了。

标签: eclipse git egit


【解决方案1】:

如果您不在 detached HEAD mode 中,请咨询 Egit:

如果 HEAD 是“分离的”,即不是指向本地分支的尖端,而是指向提交或标记,则树中可能不会出现或出现多个“签出”标记,因为任意数量的远程分支或标签可能指向当前签出的提交。
您的 HEAD 分离时您所处的状态不会被任何分支记录(这是自然的 --- 您不在任何分支上)。

(请参阅“Why did git detach my head?”了解可能的原因,以及“Git: How can I reconcile detached HEAD with master/origin?”了解和解)。

这是推送到远程仓库时出现“最新”消息的常见原因。

【讨论】:

  • 我添加了一些图片。你还认为我有一个分离的头吗?
  • 我把树弄乱了,我怎样才能避免这种情况发生。它应该像一个单链。
  • @user1626792 您似乎并没有处于超然状态,而且您的历史很好:它反映了从远程到您的 repo 的合并(但您自己的 repo 历史是线性的)。
  • @user1626792 但是,您需要提交一些内容才能推送它:现在,与远程相比,您的 HEAD 没有引用任何 new 提交。
  • 合并的提交实际上不包含任何更改。这正是我首先要做的,否则它会成功推送。但是有时当我合并时,它会失败,然后无法推送到上游。
【解决方案2】:

在我成功推送到上游后,比如0.3.9版本,我继续在本地更改我的代码并提交一个0.5.0版本。本次提交应基于 0.3.9 版本。我不知道为什么。这就是为什么我每次都必须进行合并,有时合并会使我的代码变得混乱。

【讨论】:

  • 我猜你搞错了。拉动时它应该自动合并/变基。
猜你喜欢
  • 2011-09-15
  • 1970-01-01
  • 2015-01-27
  • 2014-01-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-23
相关资源
最近更新 更多