Git是一个分布式版本控制系统,用于跟踪文件的变化并协调多个开发者之间的工作。它可以记录文件的修改历史,方便开发者回溯和比较不同版本的文件。Git还可以轻松地合并不同开发者的修改,并可以在不同的分支上同时开展工作。Git的设计目标是速度快、简单易用、支持大型项目和复杂的分支管理。
以下是我在使用git的时候遇到的一些报错,我将其整理出来
错误一:Git 在 push 的时候报的错误:error: src refspec xxx does not match any / error: failed to push some refs to ....
1、在 github 新建了一个工程
2、本地初始化 ,并关联新建的github地址,在 pull 的时候发现报错
3、发现现在建的 github 工程默认名为了 main,而本地建立的git默认是master
(后面发现由于受到"Black Lives Matter"运动的影响,GitHub 从今年 10 月 1 日起,在该平台上创建的所有新的源代码仓库将默认被命名为 “main”,而不是原先的"master"。)
4、所以 pull 和 push 都会报错
问题解决方法
1、把本地的 master 仓库名称修改为远端的 main
重命名命令: git branch -m master main
2、然后,push 就好了
错误二:git问题error: remote origin already exists.
如果你clone下来一个别人的仓库,在此基础上完成你的代码,推送到自己的仓库可能遇到如下问题:
error: remote origin already exists.表示远程仓库已存在。
因此你要进行以下操作:
1、先输入git remote rm origin 删除关联的origin的远程库
2、关联自己的仓库 git remote add origin https://gitee.com/xxxxxx.git
3、最后git push origin master,这样就推送到自己的仓库了。
错误三:! [rejected] main -> main (fetch first) error: failed to push some refs to
执行git push
报错:To github.com:raxx/xxar.git
! [rejected] main -> main (fetch first)
error: failed to push some refs to 'git@github.com:raxx/xxar.git'
git 提交冲突,远端代码与本地代码不一致(别人在你提交之前提交了代码,导致你本地现在的代码与远端现在的代码不一致。)
1. 将自己新写的代码备份到其他地方。
2. 删除本地项目里自己新写的代码。
3. git pull 下拉代码,使本地代码与远端代码一致。
4. 重新上传代码
git add .
git commit -m "fix bug"
git push
错误四:git提交或克隆报错fatal: unable to access ‘https://github.com/tata20191003/autowrite.git/‘: Failed to connec
1.问题原因
报错信息:
fatal: unable to access 'https://github.com/xxx/autowrite.git/':
OpenSSL SSL_read: Connection was reset, errno 10054
又或者
fatal: unable to access 'https://github.com/xxx/autowrite.git/':
Failed to connect to github.com port 443: Timed out
因为git在拉取或者提交项目时,中间会有git的http和https代理,但是我们本地环境本身就有SSL协议了,所以取消git的https代理即可,不行再取消http的代理。
后续
原因还有一个,当前代理网速过慢,所以偶尔会成功,偶尔失败。
2.解决方案
方法一:取消git代理
1.在项目文件夹的命令行窗口执行下面代码,然后再git commit 或git clone
取消git本身的https代理,使用自己本机的代理,如果没有的话,其实默认还是用git的
//取消http代理
git config --global --unset http.proxy
//取消https代理
git config --global --unset https.proxy
方法二:设置系统代理
有时候取消代理设置仍然会出现报错,这时可以通过设置系统代理来解决。具体步骤如下:
打开系统设置,搜索代理设置,并点击编辑按钮。
在代理服务器中,将端口设置为7890(这个端口不会影响正常上网,可以放心设置),然后点击保存。
在终端输入以下命令,设置 Git 使用本地代理:
git config --global http.proxy http://127.0.0.1:7890
设置完成后,可以通过以下命令检验是否设置成功:
git config --global -l
错误五:fatal: refusing to merge unrelated histories
本地合并时遇到refusing to merge unrelated histories的错误https://www.cnblogs.com/jinbang/p/8920252.html
如果git merge合并的时候出现refusing to merge unrelated histories的错误,原因是两个仓库不同而导致的,需要在后面加上--allow-unrelated-histories进行允许合并,即可解决问题
如果还不能解决问题,就把本地的remote删除,重新git remote add添加远程仓库,再按上面的方法来,问题解决。
远程push 的时候出现refusing to merge unrelated histories 记Git报错-refusing to merge unrelated histories-CSDN博客
本地仓库在想做同步远程仓库到本地为之后本地仓库推送到远程仓库做准备时报错了,错误如下:
fatal: refusing to merge unrelated histories
(拒绝合并不相关的历史)
出现这个问题的最主要原因还是在于本地仓库和远程仓库实际上是独立的两个仓库。假如我之前是直接clone的方式在本地建立起远程github仓库的克隆本地仓库就不会有这问题了。
查阅了一下资料,发现可以在pull命令后紧接着使用--allow-unrelated-history选项来解决问题(该选项可以合并两个独立启动仓库的历史)。
解决:
$git pull origin master –allow-unrelated-histories
以上是将远程仓库的文件拉取到本地仓库了。
紧接着将本地仓库的提交推送到远程github仓库上,使用的命令是:
$ git push <远程主机名> <本地分支名>:<远程分支名>
也就是
$git push origin master:master
提交成功。
这里建议直接在项目开始的时候在github建立一个简单的项目,然后git clone到本地,在将代码移植到这个项目里,可以避免很多问题