之前一段时间在github上上传更新过项目,好久没用了又忘记了,今天在新电脑上重新下载了git等环境,重新学一下并记录,以免下次又忘记。
本文章参考stormzhang的《从0开始学习github》
1. 生成SSH key
SSH是一种网络协议,用于计算机之间的加密登录。github一般都是基于SSH授权的,而大多数git服务器都会选择使用SSH公钥来进行授权,所以我们的第一步就是需要生成SSH key。
1). 打开git bush,输入:ssh
,获得如下界面,则表示已安装SSH,否则需要自行下载。
2). 输入:ssh-keygen -t rsa
指定rsa算法生成密钥,接着三个回车不需要输入任何信息,然后就会在 c/user/[用户名]/.ssh 文件下生成id_rsa(密钥)和id_rsa.pub(公钥)。
接下去把id_rsa.pub公钥中的内容添加到github,这样本地的id_rsa密钥就可以和github上的公钥进行配对,授权成功后才可以提交代码。
2. 在github上添加SSH
1). 选择:Settings
2). 选择:SSH and GPG keys
3). 点击:New SSH key
4). 将id_rsa.pub公钥中的内容粘贴至key中,点击Add SSH key
5). git bush中输入:ssh -T git@github.com
若出现选择yes/no选择yes即可。
3. 提交代码
1). 在项目中右击git bush,输入:
git config --global user.name "[name]"
(初次使用git需要设置的参数name)
git config --global user.email "[email]"
(初次使用git需要设置的参数email)
git remote add origin git@github.com:Upxuans/harvestweb.git
(与github上的文件建立连接,此处采用SSH授权)
git init
(初始化git仓库)
git status
(显示红色的字体文件是未被跟踪的文件,还未提交在git仓库,可以通过git add提交到git仓库)
git add .
/ git add [filename]
(将未被跟踪的文件提交到git仓库)
git commit -m 'first commit'
(将仓库中的信息提交,此时输入git status则提示nothing to commit)
git log
(查看commit提交日志)
git pull origin master
(爬取代码,为保持两端代码的一致性,先pull再push不容易出现冲突)
git push origin master
(提交代码)
其他待更新…
4.出现的问题
1). 问题描述
根据上面的git语句执行后,出现以下错误:
2). 问题解决
git branch
(检查分支)
百度了一下发现出现这种问题一般通过以下两句git语句可以解决
git pull --rebase origin master
(进行代码合并pull=fetch+merge,最后发现rebase 还是要慎用,我用了之后仓库直接出现了很多问题,后来就删掉该.git重新设置了)
git push -u origin master
(提交)
但是我的问题并没有解决。
最后是通过强制提交命令git push -u -f origin master
提交了,主要是因为项目都是自己在做所以没关系,如果有伙伴一起的话这句话还是要慎用呀。
3). 问题总结:
出现的问题主要是还是因为pull这步异常,本地的项目和github上的项目均有异同致使不能正常合并。
其他问题待更新…
5.其他指令
git remote set-url origin [url]
(修改远程地址)