本文最后更新于:6 个月前
前言
Git是开发人员日常工作中不可或缺的版本控制工具 。
git 大厂代码提交原则(适用新手,细节拉满) - 掘金 (juejin.cn)
🔍 探索常见错误:解析Git远程推送中的问题
通过深入研究Git远程推送过程中的常见错误,我将为你揭示它们的原因,并给出解决方案。无论是推送冲突、权限问题还是网络连接错误,本指南将一一为你解决。
✅ 解决方案:提供针对每个错误的有效解决方案
我将为每个常见错误提供一系列有效的解决方案,帮助你克服障碍。这些解决方案经过测试和验证,可以保证你的代码顺利推送到远程仓库。
💻 保障推送顺利进行:确保你的代码能够成功推送
通过遵循指南中的解决方案,你将能够解决常见的Git推送错误,并确保你的代码能够顺利推送到远程仓库。这将大大提高你的工作效率和团队协作的顺畅度。
🥇 掌握Git远程推送技巧:加强对Git操作的掌握
通过解决Git远程推送错误的终极指南,你将更深入地了解Git操作,并掌握解决各类问题的技巧。这不仅对个人的开发工作有帮助,也对团队的合作和代码质量有积极影响。
让我们一起解决Git远程推送报错,保障顺利推送代码,提升我们的开发效率和代码管理能力!
日常 git 远程推送代码时,总会遇到莫名其妙的问题,深有感触,决定写下这篇文档,供日后参考使用
正文 基础知识 什么是版本控制
版本控制最主要的功能就是追踪文件的变更。(2023/07/15晚)
它将什么时候、什么人更改了文件的什么内容等信息忠实地了记录下来。
每一次文件的改变,文件的版本号都将增加。
除了记录版本变更外,版本控制的另一个重要功能是并行开发。
软件开发往往是多人协同作业,版本控制可以有效地解决版本的同步以及不同开发者之间的开发通信问题,提高协同开发的效率。
并行开发中最常见的不同版本软件的错误(Bug)修正问题也可以通过版本控制中分支与合并的方法有效地解决。
Git是干什么的 远程推送报错
我们在本地向远程仓库推送代码时,总会不可避免地出现报错
我们必须要明确的一点是:远程推送代码,其实是创建一个本地分支,再将本地分支的代码,推送到指定的远程仓库分支的过程
1 2 大白话讲,就是允许本地代码比远程代码多一部分, 即远程仓库有的代码,本地仓库必须有;远程仓库没有的,本地仓库也可以有
了解了这个,理解远程推送报错原因就比较轻松了(2023/07/15晚)
引起远程推送错误的原因有很多,接下来我们会一一罗列出引起报错的各种情况,再逐个给出解决方法
远程仓库未同步 原因
情景:
如果当前本地仓库不是从远程仓库克隆,而是本地创建的仓库,并且仓库中存在文件,此时再从远程仓库中拉取文件的时候会报错
1 (fatal:refusing to merge unrelated histories)
解决方法
1 git pull origin master --allow-unrelated-histories
本地仓库未同步 原因
情景:我们希望将本地已经写好的代码,推送到远程仓库托管
那我们就需要在新建仓库,而新增的仓库,我们一般都勾选添加 README.md文件
这时,我们在本地当然是这样操作了:(2023/07/15晚)
1 git remote add origin 【远程仓库地址】
1 ! [rejected] master -> master (fetch first) error: fail to push some refs
导致问题出现的原因是因为:远程代码里存在README.md文件
什么意思呢?我们在前面提到过,仅允许本地代码比远程代码多一部分,而现在,远程代码存在README.md文件,但本地没有
此时,我们把远程仓库的README.md文件理解为多余文件,这种远程推送报错原因归类为本地仓库未同步
我们的解决方法是:在远程推送之前,先将远程仓库的多余文件拉取至本地,同步两个仓库
解决方法
在执行 push 之前,执行以下代码即可:
在 push 之前执行下面的代码:(2023/07/15午)
踩坑记录
这两天在推送 Memory API 项目代码到 Gitee 仓库的过程中,遇到了很多问题(2023/07/23晚)
花了整整两天时间,才成功地推送代码成功,下面我将介绍推送代码时的常见报错和解决办法
将文件的修改加入暂存区:
这一步操作,是将该本地分支内的所有文件都添加至暂存区
将暂存区的文件提交修改到版本库:
注意这里的提交信息不能为空,否则该提交操作会被驳回:
推送代码之前,应该拉取远程分支的代码到本地,同步过后再提交:
1 ! [rejected] master -> master (fetch first ) error : fail to push some refs
说明本地分支的代码与远程分支代码部分文件有冲突,需要将有冲突的文件,一一合并,如此拉取:
1 git pull --rebase origin master
发生冲突意味着 Git 无法自动决定如何合并代码,这需要我们手动合并文件,解决冲突
如果你不知道要合并哪些文件,可以执行以下命令,提交合并结果:(2023/07/23晚)
这时,如果还有未合并的冲突文件,就执行以下命令,手动合并:
完成这步操作,就可以推送代码了(2023/08/25晚)
在推送API接口开放平台的代码时,注意到:执行查看需要手动合并的文件后,无需依次合并提交:
如果确保无误,没有别的要求的话,只需一次性全部提交合并冲突 即可:
注意
1 git pull --rebase origin master
网上有的教程可能会跟你讲,执行以下代码来退出 rebase 过程:
1 git stash / git reset --hard HEAD
千万不要这样做,这样会放弃提交本地的所有改动,回退到最近的一次提交状态,本地分支也会被远程分支覆盖
正确的做法就是上面提到的,正常合并冲突文件,最后提交
或者如果不想提交本次修改,可以选择退出合并冲突文件,执行以下代码:(2023/07/23晚)
Eslint 优化导致git代码推送失败
如上图所示,使用 git 推送代码竟然报错了,这是什么原因呢?
我们简单罗列出以上的报错信息:
这些错误和警告是由静态代码分析工具 ESLint 提供的。根据报错信息,您遇到了一些问题:
File ignored because of a matching ignore pattern. Use "--no-ignore" to override
:这是一个警告,意味着某些文件被忽略了,因为它们匹配了 .eslintignore
文件中设定的忽略模式。您可以使用 --no-ignore
参数来覆盖这个忽略,让这些文件被检查。
'loading' is assigned a value but never used @typescript-eslint/no-unused-vars
:这是一个错误,提示您在 InterfaceInfo/index.tsx
文件中定义了 loading
变量,但是从未使用过。您可以删除没被使用的变量,或者使用变量来解决您需要的逻辑。
Missing "key" prop for element in array react/jsx-key
:这是两个错误,它们指出在您的组件 InterfaceInfo
的 renderDataSource
方法中,两个元素没有提供 key
属性。React 要求在渲染组件数组时,每个元素都要提供一个唯一的 key
属性,以便在更新列表时进行准确的 diff 操作。您需要为这两个元素添加一个适当的 key
属性。
1 git commit -m "接口调用页面优化 接口参数信息 接口文档预开发" --no-verify
这里其实还有很多有关 ESLint 的配置管理 ,我就暂时不深究了,日后有机会再展开聊聊
总结