Git上有更新而本地无更新时的解决过程

作者:

文章目录
  • 分支名称不匹配:你尝试推送到 main 分支,但你当前在 master 分支上 远程仓库有新内容:远程仓库包含你本地没有的提交,需要先拉取
  • 基于你的情况,建议先执行: # 查看远程分支情况 git remote show origin # 拉取并合并远程master分支 git pull origin master # 推送 git push origin master 如果拉取时出现冲突,需要: 手动解决冲突文件 git add . git commit -m "解决冲突" git push origin master 远程仓库有本地没有的更新,需要先拉取再推送。按以下步骤解决:
  • 如果想先查看远程有什么更新: # 获取远程更新但不合并 git fetch origin master # 查看差异 git log HEAD..origin/master –oneline # 如果确认要合并 git merge origin/master # 推送 git push origin master 建议: 先执行 git pull origin master,这是最标准的解决方案
  • 以上为个人经验,希望能给大家一个参考,也希望大家多多支持风君子博客。 您可能感兴趣的文章: vscode更改代码git没有更新问题及解决 git-github 子模块仓库更新(git submodule)及git中submodule子模块的添加、使用和删除操作 使用Git向GitHub上传更新内容 window设置任务计划定时执行 git 更新(git pull)并隐藏运行cmd 利用PyCharm操作Github(仓库新建、更新,代码回滚)
  • 目录
    • 问题分析
    • 解决方案
      • 方法1:继续使用 master 分支
      • 方法2:如果远程仓库使用 main 分支
      • 方法3:将 master 重命名为 main(如果需要)
    • 推荐操作
      • 1. 先拉取远程更新
      • 2. 可能出现的情况
        • 情况A:自动合并成功
        • 情况B:出现合并冲突
      • 3. 如果不想合并历史(强制推送,慎用!)
      • 安全的替代方案
        • 总结

          1. 分支名称不匹配:你尝试推送到 main 分支,但你当前在 master 分支上
          2. 远程仓库有新内容:远程仓库包含你本地没有的提交,需要先拉取

          # 1. 先拉取远程更改
          git pull origin master
          
          # 2. 如果有冲突,解决冲突后提交
          # (如果没有冲突,会自动合并)
          
          # 3. 推送到远程
          git push origin master
          

          # 1. 查看所有分支
          git branch -a
          
          # 2. 如果远程有main分支,切换到main
          git checkout main
          
          # 3. 拉取最新代码
          git pull origin main
          
          # 4. 推送
          git push origin main
          

          # 1. 重命名本地分支
          git branch -m master main
          
          # 2. 拉取远程main分支的内容(如果存在)
          git pull origin main --allow-unrelated-histories
          
          # 3. 推送并设置上游
          git push -u origin main
          

          基于你的情况,建议先执行:

          # 查看远程分支情况
          git remote show origin
          
          # 拉取并合并远程master分支
          git pull origin master
          
          # 推送
          git push origin master
          

          如果拉取时出现冲突,需要:

          1. 手动解决冲突文件
          2. git add .
          3. git commit -m "解决冲突"
          4. git push origin master

          远程仓库有本地没有的更新,需要先拉取再推送。按以下步骤解决:

          git pull origin master
          

          如果看到类似 “Merge made by the ‘recursive’ strategy” 的消息,说明自动合并成功,直接推送:

          git push origin master
          

          如果出现 “CONFLICT” 提示,需要:

          1. 查看冲突文件:
          git status
          
          1. 打开冲突文件,手动解决冲突(冲突部分会有 <<<<<<<, =======, >>>>>>> 标记)

          2. 解决后添加文件:

          git add .
          
          1. 提交合并:
          git commit -m "合并远程更新"
          
          1. 推送:
          git push origin master
          

          警告:这会覆盖远程仓库的内容,只在确定远程内容可以丢弃时使用:

          git push -f origin master
          

          如果想先查看远程有什么更新:

          # 获取远程更新但不合并
          git fetch origin master
          
          # 查看差异
          git log HEAD..origin/master --oneline
          
          # 如果确认要合并
          git merge origin/master
          
          # 推送
          git push origin master
          

          建议

          先执行 git pull origin master,这是最标准的解决方案

          以上为个人经验,希望能给大家一个参考,也希望大家多多支持风君子博客。

          您可能感兴趣的文章:

          • vscode更改代码git没有更新问题及解决
          • git-github 子模块仓库更新(git submodule)及git中submodule子模块的添加、使用和删除操作
          • 使用Git向GitHub上传更新内容
          • window设置任务计划定时执行 git 更新(git pull)并隐藏运行cmd
          • 利用PyCharm操作Github(仓库新建、更新,代码回滚)

          站内搜索