今天想把一些代码文件推送到远程的github仓库出现了下面的问题:
1.permission Denied…![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/7c337ed9df73517b4f0e9860f4fc12f7.png)
在网上查询了一下,发现这是没有公钥惹的祸,可是我记得配置的时候是设置了公钥添加到了远端仓库的,这里不知道为啥又要设置。按照网上大神的方法,打开git bash 执行公钥和私钥生成命令: ssh-keygen -t rsa然后按三下回车,大神解释的是这里是设置密码,如果设置了,每次使用Git都要用密码,所以这里默认为空,完成之后会有一个id_rsa.pub在.ssh文件中,我直接使用的cat查看内容:cat ~/.ssh/id_rsa.pub,然后将其内容复制到github网站中添加ssh的地方,添加新的ssh:
可以看到这里确实有两个ssh,然后就可以git push了,但是又出现下面问题:
2.
这里使用了网上照片,因为我忘记截图了(尴尬)。
翻译出来的意思就是:更新被拒绝,因为远程包含您所做的工作,本地没有。这通常是由另一个存储库推送引起的。指向同一引用。您可能希望首先合并远程更改(例如, “git pull”),然后再按有关详细信息,请参见“git push–help”中的“关于快进的说明”。
也就是本地和远程没有同步的原因,是因为远程分支上存在本地分支中不存在的提交,我也记得我在vs中使用了Git可能是哪里出了差错,具体的还需要去看看,这里就解决这个问题给出步骤:
在网上,我查了可以使用以下3步骤:
1.0 git fetch origin(不一定是origin,看你自己git remote add 时的名称)进行远程更新
2.0 git merge/master进行合并
3.0 进行git push
即可成功,中途可能在git merge时出现不能进行无关联的合并问题,使用:
git pull origin master --allow-unrelated-histories即可