天天看点

中国版GitHub的注册和项目托管,码云gitee.com创建第一个git托管仓库

为什么要使用码云, 点击这里

解决了很多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仓库的用户名和密码。而且密码使用特殊字符还不能成功,尽量使用数字和大小写字母组合密码,可以在码云个人设置那里修改密码。

填坑一:

用户名是你注册时候使用的邮箱,而不是别名。比如我在码云注册的用户名是marvin,中文名是马文,邮箱是[email protected]。这里git使用的是你的邮箱[email protected]而不是marvin或者马文。容易造成误解的地方是:

你安装成功后使用命令 ssh -T [email protected]的时候会提醒你:Welcome to gitee.com, 马文

而初始化项目的时候使用的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项目了。