为什么要使用码云, 点击这里解决了很多GitHub的痛处。对于我来说就是GitHub全英文,我只认识abc不是ABC,好难用。而且网络比国内站点慢很多。
注册码云账户就不说了。
第一步:首先本地初始化一个项目,执行git config 告诉git你是谁,这些信息会出现在你创建的提交中
git config --global user.name "你的名字或者昵称"
git config --global user.email "你的邮箱"
git bash生成公钥
ssh-keygen -t rsa -C "你的邮箱"
一路点击回车即可,文件在C:\Users\Administrator\.ssh 下。可以将生成的公钥粘贴到码云-->个人配置-->公钥,这样使用ssh登录就不用用户名和密码了。
第二步:新建文件夹用作本地仓库
比如在D盘新建 gitspace作为本地仓库,使用bash进入该目录
cd D:/gitspace
git init # 初始化git
git remote add origin <你的远程仓库地址> #绑定远程仓库
#仓库地址格式:https://gitee.com/yourdir/yourproject.git或者[email protected]:yourdir/yourproject.git
#这里的yourdir和yourproject是在码云里头新建项目时设置的
第三步:更新到远程仓库
git add . #指定更新内容.表示所有的,加目录表示更新某个目录,加文件表示更新某个文件
git commit -m "注释" #git强烈要求提交添加注释
git push -u origin master #执行更新操作
更新前最好是执行git pull --rebase origin master 操作,让gitee与本地代码合并再执行push操作,避免冲突
查看远程仓库:git remote v
删除远程仓库:git remote rm origin <你的远程仓库地址>
踩坑一:
push操作如果出现:fatal: Authentication failed for <你的远程仓库地址>,而且有不弹出对话框输入用户名和密码,那么可以使用:
git config --system --unset credential.helper然后再push。
出现该错误的原因就是用户名和密码输入不正确。此处的用户名和密码比较坑,因为只有注册码云的时候填了用户名和密码,仓库并没有单独的密码,所以这里的用户名和密码就是git仓库的用户名和密码。而且密码使用特殊字符还不能成功,尽量使用数字和大小写字母组合密码,可以在码云个人设置那里修改密码。
填坑一:
而初始化项目的时候使用的git config --global user.name "marvin" 这里的配置跟生成公钥私钥有关
但是这两个都不是仓库的登录用户名。
踩坑二:
第一次创建a.git仓库,使用Demo项目,后面就把他删了git remote rm origin
https://gitee.com/a/a.git
再重新再gitee后台创建一个叫a.git的仓库,使用code项目,code项目赋值到本地仓库,进行push:git push -u origin master
提示错误:
! [rejected] master -> master (fetch first)
error: failed to push some refs to 'https://gitee.com/a/a.git'
连续的错误,头好大。学习一个新东西哪有不撞墙的,撞了东墙装西墙。学习新东西的正确打开方式,应该先看文档了解工作原理再动手实践。无奈自己是个急性子又沉不下心来看理论知识。直接百度就开始干。这不是个好习惯。
填坑二:
之前说了push操作前先pull,以免发生冲突。
git pull origin master, 又有新问题出现:
From https://gitee.com/a/a
* branch master -> FETCH_HEAD
* [new branch] master -> origin/master
fatal: refusing to merge unrelated histories
错误的大概意思是拒绝合并一个不想管的历史仓库,也就是说历史仓和新提交的本地仓库的项目并不相关,拒绝合并。虽然是错误,头大。但不得不说git管理代码的严谨性棒棒哒。因为之前仓库已经被删了(使用被删的仓库作为新的仓库,会有这个问题,应该是某些做记录的文件没有被删除),两个项目不同合并了也不会有什么问题,告知git忽略这个问题
git pull origin master --allow-unrelated-histories,执行后会进入vi状态,进行注释。再使用push操作,成功。两个问题一起解决。
然后就可以clone项目了。