如何解决git错误:";更新被拒绝,因为您当前分支的尖端落后于;

如何解决git错误:";更新被拒绝,因为您当前分支的尖端落后于;,git,bitbucket,git-merge,Git,Bitbucket,Git Merge,一位好心的同事将更改推给了主控,而不是进行分支。这意味着,当我尝试提交时,会出现以下错误: 更新被拒绝,因为当前分支的尖端已过期 我知道这应该通过请求重新同步来解决,但我不想丢失我在本地所做的更改,我同样不想强制提交并删除其他人所做的更改 有什么正确的方法可以让我合并更改而不丢失更改?我会这样做: 阶段化所有未老化的更改 git add . 把零钱藏起来 git stash save 与远程同步 git pull -r 重新应用本地更改 git stash pop 或 如果已经进

一位好心的同事将更改推给了主控,而不是进行分支。这意味着,当我尝试提交时,会出现以下错误:

更新被拒绝,因为当前分支的尖端已过期

我知道这应该通过请求重新同步来解决,但我不想丢失我在本地所做的更改,我同样不想强制提交并删除其他人所做的更改


有什么正确的方法可以让我合并更改而不丢失更改?

我会这样做:

  • 阶段化所有未老化的更改

    git add .
    
  • 把零钱藏起来

    git stash save
    
  • 与远程同步

    git pull -r
    
  • 重新应用本地更改

    git stash pop
    


  • 如果已经进行了一些提交,则可以执行以下操作

    git pull --rebase
    
    这将把所有本地提交放在新拉取的更改之上

    git add .
    
    注意这一点:这可能会用文件覆盖您当前的所有文件,因为这些文件位于远程回购中分支的开头!如果发生这种情况,而您不希望它发生,您可以使用撤消此更改

    git rebase --abort 
    

    。。。当然,在进行任何新的提交之前,您必须这样做

    我也有同样的问题。不幸的是,我在错误的目录级别

    我尝试:
    git push-u原始主机
    ->出现错误

    然后我尝试:
    git pull--rebase
    ->仍然有一个问题
    最后,我更改了目录
    cd您的_目录


    然后我又试了一次(
    gitpush
    ),它成功了

    我通过以下Visual Studio 2017更改解决了此问题:

  • 在团队资源管理器中,转到设置。转到全局设置在全局级别配置此选项;转到存储库设置在回购级别配置此选项
  • 在将拉至所需设置时,设置本地分支的重设基础(对我来说,这是真的),然后选择更新保存

  • 请参阅:

    我在分支上遇到了完全相同的问题(我们称之为分支B),我遵循了三个简单的步骤使其正常工作

  • 切换到主分支(git签出主分支)
  • 拉了一下主机(git pull)
  • 创建了新的分支(git分支C)-请注意,我们现在从主分支开始
  • 现在,当您在分支C上时,与分支B合并(git merge B)
  • 现在进行推送(git推送源代码C)-工作:)
  • 现在您可以删除分支B,然后将分支C重命名为分支B


    希望这能有所帮助。

    当有人将代码提交给开发/主控,并且最新代码未从开发/主控中重定基址,并且您试图覆盖对开发/主控分支的新更改时,会出现此问题

    解决方案:

    • 如果您正在处理功能分支,请进行备份,并通过执行git checkout develope/master切换到master/develope分支
    • 你会拉吗
    • 在同一个文件中进行更改时,如果没有从develop/master重新设置基础,则会发生更改和合并冲突
    • 如果发生冲突,请解决冲突并执行git推送,这样应该可以工作

    您当前不在分支机构上。 将历史推送到当前(分离的头部) 现在陈述,使用

    git push origin HEAD:<name-of-remote-branch>
    
    git推送原点磁头:
    
    我遇到了这个问题,我意识到.gitignore文件已更改。所以,我改变了。gitignore,我可以拉这些改变。

    这对我来说很有效:

    git stash save
    
    git pull origin <current-branch-name>
    git push
    
    git拉原点
    git推送
    
    git stash
    您的更改(如果未提交)、与远程同步、使用
    git stash pop重新应用更改
    不幸的是,在尝试推送和解决问题之前,我已经进行了几次本地提交。我应该如何处理这些问题?如果你犯了这个错误,那么我需要推动heroku,但隐藏方法也很有用,所以我也投票支持Tim Castelijns的评论。这会删除我的本地更改,使其与回购协议中的更改类似。好在我在做之前把我的项目放进了一个.zip文件夹:)为我的体验添加了一条评论。我必须添加git pull--rebase,然后修复合并冲突。然后是
    git add
    ,最后是
    git rebase——继续。您的本地和远程分支可能出现问题,需要修复。在执行git pull--rebase origin master之后,它表示当前分支my_分支是最新的。。我很高兴。但当我再次尝试推送它时,它说“提示:更新被拒绝,因为您当前分支的提示在后面”任何建议?@EdisonPebojot如果您的本地分支设置为跟踪远程分支,则短版本有效。然后,远程分支称为本地的上游分支。你可以阅读更多关于它的信息,这也是非常危险的
    git pull-r
    将意味着您相对于远程分支的头所做的任何提交都将被彻底销毁!您的“隐藏”将仅是相对于上次本地提交的更改!OP在一条评论中特别指出,“在尝试推送之前,我已经做了几次本地提交”…使用
    git pull-r
    是我个人偏好的问题,正如我所指出的。我会在场景中使用它,因为这样做不会导致@mike提到的合并冲突或破坏。否则,
    git pull
    就足够了。在我看来,在上述情况下,在不导致合并冲突的情况下,使用
    git pull-r
    的美妙之处在于,它不创建额外的自动
    merge
    提交,从而将我的本地提交放在首位(即更干净的日志历史记录),我发现这是“噪音”和可以避免的。如果您合并这两个ie B&C呢