首页 > 其他分享 >git中Updates were rejected because the tip of your current branch is behind解决方案

git中Updates were rejected because the tip of your current branch is behind解决方案

时间:2022-09-19 18:56:26浏览次数:84  
标签:git 仓库 tip rejected 变为 修改 本地 远程

 

1.错误说明

出现这个错误的原因是git本地仓库的当前版本低于远程仓库的版本(大白话就是:你在github上进行的修改没有同步到本地git仓库中)。

2.错误原因

第一种错误的原因
某一天你在本地仓库进行了相关修改然后上传到远程仓库中,这时本地仓库和远程仓库都是同步的,不会出现这种错误。过了几天你突然在github看到了一个错误需要修改,但你并没有通过本地仓库进行修改而是直接在github上进行修改,然后保存修改。这里就要注意一个问题,之前你通过本地仓库进行修改文章最后都会上传到远程仓库(也就是github中),这就保证了远程仓库和本地仓库是同步的,但是如果你直接在远程仓库(github)中进行修改,默认是不会上传到本地的,这就导致了一个问题,本地仓库中的相关内容没有被修改,而远程仓库中的相关内容被修改,这里可以理解为远程仓库更新了而本地仓库没有更新,这就导致了本地仓库的版本落后于远程仓库,也就是本地仓库和远程仓库版本不一致。而你现在直接在本地仓库这个落后的仓库中修改相关文件然后上传到远程仓库中就会出现错误,本地的修改是基于之前版本的修改,这种修改无法基于远程仓库中这种之后的版本,因为要修改的地方原本的内容都不同就会导致有些修改方法无法实现(比如说本地仓库要把1变为2就加一就可以了,但是远程仓库不是1而是3,这是如果用本地仓库的修改方法也加一就会变为4,这显然是不合适的)。

第二种原因
在企业开发中,通常一个项目不是由一个人独立完成的而是由多个人共同完成的,由于另外的程序员更改了相关的代码并向远程上传了更改,而你没有同步他的更改而是在之前的基础上也更改了并上传就会出现版本低于远程版本的错误无法修改。举个简单的例子,要实现一个算式3先加一在减二最终得到2的功能,实现这个功能需要两步:先加一j,然后减二。假设你负责实现加一的功能,另外一个程序员实现减二的功能,现在本地仓库和远程仓库的数字都是3,正常情况下是你先实现加一的功能使本地的数字变为4然后上传到远程使远程的数字变为4,然后另一位程序员将远程更改后的数字4同步到本地使本地的数字也变为4,然后在本地4的基础上实现减二的功能使其变为2然后上传到远程使其也变为2,最后你同步远程的2到本地使你的本地数字也变为2,这样就实现了该功能。但是由于你的个人原因,让另一位程序员提前你一步实现减二的功能并上传到远程,导致远程的数字变为了0,而你现在上传加一的功能肯定是会报错的,如果成功那么远程就变为了1这显然是达不到功能需求的。

3.解决方案

错误的解决方案(注意是错误的解决方案)

在终端下输入:git push -u origin master -f
   这句话执行的后果就是在远程仓库中进行的相关修改会被删除,使远程仓库回到你本地仓库未修改之前的那个版本,
   然后上传你基于本地仓库的修改。这如果在企业开发中就会让别的程序员的这些天的开发付之东流,一切回到解放前。

正确的解决方案

先在终端下输入:git pull origin master

这句话是说将远程中进行的相关修改保存下来
  但这时可能会报错:error: Your local changes to the following files would be overwritten by merge:
  解决方案看我另一篇博客:https://blog.csdn.net/IT_SoftEngineer/article/details/107133284
  解决上述问题后就可保证远程仓库的更新会被同步到本地而本地仓库的修改也不会被覆盖
  然后就是add,commit,push命令将本地的修改上传到远程仓库中

————————————————

版权声明:本文为CSDN博主「DedicationYu」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/IT_SoftEngineer/article/details/107133313

标签:git,仓库,tip,rejected,变为,修改,本地,远程
From: https://www.cnblogs.com/shiding/p/16708679.html

相关文章

  • 初始化gitlab仓库
    初始化gitlab仓库一、Git全局设置gitconfig--globaluser.name"yourgitlabusername"gitconfig--globaluser.email"yourgitlabuserpassword"二、创......
  • qt creator 使用 git
    创建仓库在github,gitee这样的平台上,创建一个仓库,注意不要初始化仓库配置项目创建项目的时候,cvs选择git工具。tool->git->remoterepo->manageremote,......
  • 使用docker安装gitlab
    1.dockerpullgitlab/gitlab-ce2.[root@localhostgitlab_docker]#catdocker-compose.ymlversion:'3.8'services: gitlab:   image:'gitlab/gitlab-ce:lates......
  • 集成部署 2-jenkins获取git轮询查询
    一:配置  二:构建任务配置中配置git     三:轮询查询最后保存     看git拉取本地成功  ......
  • 解决git推送失败的问题
    解决git推送失败的问题报错:error:srcrefspecmasterdoesnotmatchany 暴力方法: 1,把本地文件夹的.git文件夹删除; 2,初始化本地仓库......
  • TortoiseGit 在windows11 中使用,建议升级到 2.13.0版本以后
                   ......
  • GitHub不再支持密码验证解决方案:SSH免密与Token登录配置
    今天提交代码,push到GitHub上,突然出现这个问题。remote:SupportforpasswordauthenticationwasremovedonAugust13,2021.Pleaseuseapersonalaccesstokenins......
  • git
    1.git介绍免费、开源的分布式版本控制系统(版本控制就是记录变化过程)从个人开发过度到团队协作。集中式版本控制系统:SVN好处:易于管理缺点:中央......
  • 学会小知识 git拉项目提交项目
    win+tab 就可以看到多少页面在运行。白天写草稿,晚上记笔记。git拉项目提交项目。git拉项目如果git还不熟练建议先用sourcetree先用起来 gitbash啊  gitbran......
  • groovy 检测git提交信息并推送到企业微信
    目录groovy检测git提交信息并推送到企业微信groovy检测git提交信息并推送到企业微信packagecommon.ecsimportgroovy.json.JsonSlurperClassicimportjava.time.L......