GIT初学者,记录下学习过程中遇到的问题和解决方法
GIT版本:git version 2.33.1.windows.1
远程仓库:gitee
问题1:PUSH到远程仓库时,提示git@gitee.com: Permission denied (publickey)
解决办法:查找了很多解决办法,基本上都是在本地生成SSH公钥,然后将公钥复制到服务器中,但是这些方法并没有解决我的问题。直到在gitee浏览到 SSH Key 突然失效问题解答及处理办法 - Gitee.com 这篇文章后,尝试了其中的方法,问题才得到解决,关于出现该问题的原因也文章里提到了。
简单说下原因:大家一般都使用如下指令来生成SSH公钥。
$ ssh-keygen -t rsa -C "xxx@email.com"
使用该指令,旧版本git用RSA-SHA1算法生成的SSH公钥,而新版本git(例如:git version 2.33.1.windows.1)用RSA-SHA2算法生成的SSH公钥,而gitee上采用的提取策略还不支持RSA-SHA2,所以gitee会提示拒绝。
问题2:分支push提示Everything up-to-date
本地分支dev与远程分支develop(origin/develop)已完成关联。本地分支dev先进行了2次commit,输入git status指令查询状态:
$ git status On branch dev Your branch is ahead of 'origin/develop' by 2 commits. (use "git push" to publish your local commits) nothing to commit, working tree clean
按照git的提示输入 git push origin origin/develop
$ git push origin origin/develop Everything up-to-date
git提示“Everything up-to-date”也就是说一切都是最新的,很明显实际情况不是这样的。
在dvcs - Git push won't do anything (everything up-to-date) - Stack Overflow中找到了答案。
解决办法:输入git push origin [loacal_branch_name]:[remote_branch_name],效果如下,push成功:
$ git push origin dev:develop Enumerating objects: 11, done. Counting objects: 100% (11/11), done. Delta compression using up to 8 threads Compressing objects: 100% (6/6), done. Writing objects: 100% (8/8), 674 bytes | 674.00 KiB/s, done. Total 8 (delta 3), reused 0 (delta 0), pack-reused 0 remote: Powered by GITEE.COM [GNK-6.2] To gitee.com:XXX/python-learning.git abf927a..0e31d4d dev -> develop



