现在我们已经在本地建立了一个Git仓库,同时还想在GitHub上创建一个Git仓库,这样,GitHub上的仓库既可以作为备份,又可以让其他人通过该仓库来协作,一举多得。
步骤一
登陆GitHub,然后,在右上角找到New repository的按钮,创建一个新的仓库。
步骤二
在Respository name中填入learngit,其他选项保持默认设置,点击create repository 按钮,就成功创建了一个新的Git仓库。
步骤三
目前,在GitHub上,这个仓库还是空的。GitHub告诉我们,可以从这个仓库克隆出新的仓库,也可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库。
步骤四
现在,我们就按照GitHub的提示,在本地的learngit仓库下运行命令:
python@ubuntu:~/Desktop/learngit$ git remote add origin git@github.com:Enjolras-fuu/learngit.git
注意
把上面的Enjolras-fuu换成自己的GitHub账户名,否则,你在本地关联的就是我的远程库。虽然可以关联,但是无法推送。因为你的SSH Key公钥不在我的账户列表中。
添加之后,远程库的名字就是 origin ,这是Git默认的叫法,也可以改成别的。但是origin这个名字一看就知道是远程库。
步骤五
下一步,就是把本地库的所有内容推送到远程库上:
python@ubuntu:~/Desktop/learngit$ git push origin master
Warning: Permanently added 'github.com,52.74.223.119' (RSA) to the list of known hosts.
对象计数中: 16, 完成.
压缩对象中: 100% (13/13), 完成.
写入对象中: 100% (16/16), 1.33 KiB | 0 bytes/s, 完成.
Total 16 (delta 4), reused 0 (delta 0)
remote: Resolving deltas: 100% (4/4), done.
To git@github.com:Enjolras-fuu/learngit.git
* [new branch] master -> master
使用-u推送:
python@ubuntu:~/Desktop/learngit$ git push -u origin master
Warning: Permanently added 'github.com,13.229.188.59' (RSA) to the list of known hosts.
分支 master 设置为跟踪来自 origin 的远程分支 master。
Everything up-to-date
把本地内容推送到远程,用git push 命令,实际上是把当前分支master 推送到远程。
由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
问题
在执行步骤五的时候,可能出现的问题是提示
python@ubuntu:~/Desktop/learngit$ git push -u origin master
ERROR: Permission to Enjolras-fuu/learngit.git denied to xwpfullstack.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
解决办法就是删除当前的key,然后重新生成key
这时候会在用户主目录的.ssh目录里面生成一个文件夹。里面有id_rsa和id_rsa.pub 的密钥对。
登陆GitHub,打开“Account settings”,“SSH Keys”页面:
然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容
输入密码确认后,进入如下页面:
然后再次推送。又出现了问题,具体报错如下
突然感觉心有一丢丢累有点……百度了下各种解决方法,放一个最后解决了问题的
通过加载你的钥匙到你的SSH代理修复这个错误,
python@ubuntu:~/Desktop/learngit$ eval "$(ssh-agent -s)"
Agent pid 84326
python@ubuntu:~/Desktop/learngit$ ssh-add
Identity added: /home/python/.ssh/id_rsa (/home/python/.ssh/id_rsa)
提交到github库,强制推送
python@ubuntu:~/Desktop/learngit$ git push origin master
Warning: Permanently added 'github.com,52.74.223.119' (RSA) to the list of known hosts.
对象计数中: 16, 完成.
压缩对象中: 100% (13/13), 完成.
写入对象中: 100% (16/16), 1.33 KiB | 0 bytes/s, 完成.
Total 16 (delta 4), reused 0 (delta 0)
remote: Resolving deltas: 100% (4/4), done.
To git@github.com:Enjolras-fuu/learngit.git
* [new branch] master -> master
步骤六
推送成功后,可以立刻在GitHub页面上看到远程库中内容已经和本地的一模一样
从现在起,只要做了提交,就可以通过命令$ git push origin master
把本地master分支的最新修改推送至GitHub,现在,你就拥有了真正的分布式版本库!
联系方式
QQ:2564493603
欢迎交流