记述
个人因为需要将一些写过的项目上传到github上面,起先遇到了一些权限问题。将公私秘钥分配好之后:
ssh -T git@github.com
提示连接成功,但是在push 的时候仍然遇到权限问题
\302\226git@github.com: Permission denied (publickey).
fatal: could not read from remote repostitory.
找了很多办法,基本都说是公私钥问题,但是可以ssh连接官网,说明根本没有问题,到底问题在哪也没有搞清楚,之后便想到私钥和上传用户的邮箱账号可能与github账号的邮箱不匹配等问题,又重新改变私钥和上传用户的邮箱账号,仍然无用。
第二天,将所要上传目录中的**.git文件夹删去重新初始化**,可以上传了,说明前一天的修改是正确的的,但是并没有尝试重新初始化仓库设置,一些配置问题仍然是使用密钥前的状态。便可以推测出只要公私钥配对正确,连接可以成功,便可以上传,与邮箱账号无关,邮箱账号和用户名只是记录上传者的信息。
git push -u origin master
尝试上传之后又一个问题出现了:
error: failed to push some refs to ‘git@github.com:xxx’
…‘e.g. git pull…’
找到两种方法:
- git pull origin master (将远端库的文件更新到本地库中,如果提示refusing to merge unrelated hitories需要加上 --allow-unrelated-hisotries)再进行推送
- git branch [name] (创建分支)
git push -u origin [name]
最后没有办法的办法,-f 强制推送吧。
附git使用:
git init 初始化工作目录
git status 查看当前状态
git add <file> 将文件加入暂存区
git rm --cached <file> 将暂存区的文件删除
git commit -m “<comment>” 提交暂存区文件到版本库中并备注提交信息
git config --global user.name “name" 设置全局变量中的用户名
git config --global user.email “email” 设置全局变量中的邮箱
git config --list 列表格式显示所有的配置信息
git log 查看日志信息
ssh-keygen -t rsa -C “email@example.com” 生成ssh密钥
git remote add origin <repository’s link> 关联个人仓库
git push -u origin master 将版本库的文件推送到远端仓库中
git clone [url] 拷贝仓库中的内容到本地
git reset --soft <commit> 回退到指定 commit id 并且将回退的代码全部放入到暂存区中
git reset --hard <commit> 回退到指定 commit id 并且清空工作目录及暂存区所有修改
git reset --mixed <commit> 回退到指定 commit id 并且将回退的代码全部放入到工作区中