egit主机:主机[已拒绝]github

egit主机:主机[已拒绝]github,git,egit,Git,Egit,有时,当我尝试将代码推送到github时,会遇到一些问题。让我解释一下情况: 我只使用主分支(因为我的产品处于早期阶段,现在不需要创建功能分支)。我的远程存储库位于github,我是唯一一个参与该项目的人,因此没有对master branch进行并行修改 然后我编写一些代码,在对我正在编写的代码进行的所有测试都是绿色的之后,我将使用egit提交到本地存储库和github。没问题,所有的更改都会推送到github,但有时,我不知道确切的原因,因为我“理论”(或者至少对我来说是这样)egit(事实上

有时,当我尝试将代码推送到github时,会遇到一些问题。让我解释一下情况:

我只使用主分支(因为我的产品处于早期阶段,现在不需要创建功能分支)。我的远程存储库位于github,我是唯一一个参与该项目的人,因此没有对master branch进行并行修改

然后我编写一些代码,在对我正在编写的代码进行的所有测试都是绿色的之后,我将使用egit提交到本地存储库和github。没问题,所有的更改都会推送到github,但有时,我不知道确切的原因,因为我“理论”(或者至少对我来说是这样)egit(事实上git)不允许我推送到声称master:master[拒绝]错误的更改。在push-to窗口中,我将[master]分支作为源引用和目标引用,并添加“所有分支规范”。当然,在这种情况下,我必须从远程提取并合并代码,然后再次提交。我理解为什么会发生这种情况的理论——当前分支位于远程分支之后,但如果我是唯一一个以线性方式修改代码的人,为什么会发生这种情况


它在大多数情况下都有效,但为什么有时会发生这种错误呢?我可以理解,如果我们是一个开发团队,推动同一个github帐户,但事实并非如此。

如果您在主分支上执行回扣或重置,则可能会发生这种情况。这些操作会更改分支的历史记录,因此github主分支的尖端不再位于本地主分支的行中。因此,您会收到“被拒绝”的错误消息。

可能重复感谢Charles是的,我已经阅读了这篇文章,通过fetch和merge,问题通常会消失(有时我并不总是用远程主分支重置本地主分支),但我的问题是我是如何达到这种情况的。请注意,在本文中,您的更改被拒绝的原因是Github上的当前主分支在主分支的历史记录中没有出现。但是,如果我是唯一的开发人员,并且总是提交更改,然后将更改推到github,那么这怎么可能发生呢?github branch如何比local更高级?您需要有关错误的更多详细信息。您应该从原始git发行版运行git push,因为egit没有提供足够的信息