赞
踩
事情的起因是这样的,我不是自己建了好几个网站嘛。
有的是为了好玩,比如前文提到的hexo; 还有的我拿来当电子简历了(嘻嘻,简历网站就没有公开了啦)。
我在面试某厂的时候,面试官竟然对我的简历版的网站很有兴趣,并且对着我网站上列举出的技术栈进行了狂轰滥炸式的考察。
面试最后还不忘夸了夸我的网站。 呜!受宠若惊~
但其实我还有不满意的点以及要更新的东西,于是在面试结束后就马不停蹄的去修改了。
当我提交完,兴奋的想去看网站效果的时候。
咦,怎么毫无变化?
我反复刷新刷新页面,最后又回到github上看。
嘶 !!! 竟然。。。
纳尼,咋一段时间没用,我都提交不了了呢???
原来前一天终端的git commit 也没有成功,
但是终端这个铁憨憨好像什么都没有发现,还提示 Everything up-to-date (主人,一切都更新好了哦!)。仿佛一切安好的样子。
工欲善其事, 必先利其器。
但是好像我的解决问题工具都有些问题,哭哭。
曾经是个非常好用的一个操作git的应用端。
直到。。。我建的那个hexo_blog 新增加了个 SSH 公钥之后。
总是有问题,不是 SSH 连接失败,就是commit提交error -1.或者狂按fetch也没有反应。
(更新补充:就是 github desktop 没有配置好 SSH 密钥 导致的,解决 ing )
总之,这次先不用它了。
终端是个天真的铁憨憨,始终觉得自己同步完了,工作树很干净。
。。。
它究竟是为啥这么认为?
嗷呜,先不去打扰它对这个虚拟世界的美好幻想了吧。
=====================================================
更新部分 !!
这个伙伴遇到了和我一样的问题:
Github远程推送一直Everything up-to-date
根据这篇文章,我突然发现我本地branch只有master, 但是github 上却多出了个默认主分支 main ?!
这是因为今年的敏感政治事件, 从此github 将会用 main 来取代 master !!
可以推断是因为分支导致的问题。
经确认我的更新只改变了我的 master, main 完全没有被改变。
所以要着手解决:
How to rename the "master" branch to "main" in Git
2. 因为是自己一个人用的仓库,如果修复过程中出现 本地和远程仓库冲突, 而不能上传的情况。
确认我只想要本地的内容的话,
可以强制上传:
git push -u origin master -f
搞定~
=====================================================
我的设想是这样,既然两个仓库冲突了,那我删掉其中一个。那不就铁定不会冲突了吗。
呵呵,理想很美好。现实总是。。。啪啪啪打脸呢。
我已经把本地仓库删光光,然后复制了远程的到本地,重新建立了他们的连接。竟然还是不行。
到底是哪里出问题了呢??
难道是我本地空间不足,一些文件上传了云,所以本地没有,导致有冲突吗?
下面是疯狂提示:
不不不,应该不会和这个有关系。。。。吧
应该就是远程仓库和本地仓库同步有问题,导致版本冲突,新的操作提交不了。
那么为啥同步会有问题呢?
问题总是一个一个一个一个一个一个一个...一个一个一个一被解决的嘛。哭
别哭了,先来验证第一个猜想。
github 上关于秘钥的官方教程 错误:权限被拒绝(公钥) - GitHub Docs
- 1.ssh-keygen -t rsa -C “youremail@example.com” # 创建SSH-Key
- 将本地用户目录(用户目录/.ssh/id_rsa.pub)的ssh公钥添加到GitHub中
- 2.git bash中输入
- cat ~/.ssh/id_rsa.pub
- 复制好出现的内容
- 3.打开github,在头像下面点击settings,再点击SSH and GPG keys,新建一个SSH,名字随便。
- 把刚刚复制的内容全部黏贴到框中,点击确定保存。
-
- # 以上操作我以前已经做过了。也就是说我已经在github添加了我的ssh。我现在只要验证下是不是还连接成功。
- (这个ssh链接是和我的整个github的)
- 4.输入ssh -T git@github.com # 如果出现我的用户名,那就成功了。
那我就重新建立一次远程连接嘛
- git init # 初始化本地仓库
- git add ./ # 将文件添加到待提交区域
- git commit -m “提交信息” # 提交
- 使用GitHub创建仓库(new Repository)
- ssh-keygen -t rsa -C “youremail@example.com” # 创建SSH-Key
- 将本地用户目录(用户目录/.ssh/id_rsa.pub)的ssh公钥添加到GitHub中
- git remote add origin git@github.com:2571503519/MedicalFee-Manage.git # 将远程仓库与本地仓库建立连接
- git pull origin master –allow-unrelated-histories # 首先将远程仓库的文件pull下来
- #如果执行这句命令时,出现了“ couldn’t find remote ref –allow-unrelated-histories”的错误,输入如下命令即可解决:
- ```git pull --rebase origin master
- ```git push origin master
- git push origin master # 将本地提交同步到远程仓库
注意 git pull --rebase origin master 这个命令,重大突破来咯!!!
当我用这行命令解决 error 的时候,这个解决 error 的语句也出现了 error。。(呃 感觉像是绕口令)
当我搜索解决方案的时候,stackoverflow[https://stackoverflow.com/questions/16064513/git-fatal-unable-to-write-new-index-file]上的这位哥们一下道破了问题的关键。
喵个叽 果然和我磁盘空间脱不了关系。
我感觉我快接近问题的本质了,离 K.O 它不远了!!!
我再分析下其他人的回答,好像这个空间是服务器端,也就是github那边的问题。
和我设想的本地空间不足好像有点不一样啊。
再看这位的回答:
妈呀我都快激动哭了,这么朋友也是由这个问题导致的commit不了。
那么我赶紧来试试这个命令:
chmod -RN /path/to/repo #别忘了把/path/to/repo改成你本地仓库的地址哦
然后我继续把刚刚中断的命令敲完:
- git pull --rebase origin master #可能会有一些小冲突,按照提示走就行了。
- git push origin master
上图!啊哈哈 虽然有些安全性上的小问题,但是我就先无视了。
完结撒花~~~~~!!
什么? 你以为这就完结了,还是太天真了哦。
未完待续。。。。。。
一开始把拉取远程仓库的命令写错了。
既不是 git pull, 也不是 git pull master ♀️。
正确的应该是 git pull origin master ♀️!
希望大家不要和我一样犯这个傻傻的错误哦。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。