上传代码到 Github.com
前面学会了如何在本地用 git 创建项目版本,本节咱们看看咋把新版本上传到 github.com 之上。
准备工作:删除第一天创建的项目
如何删除一个 github.com 的仓库呢?
首先到仓库页面:https://github.com/happypeter/happypeter.github.io
点 Settings(设置)这一个标签。打开的页面底部有一个 “Delete this repository” 按钮,意思是”删除这个仓库“,点击按钮。打开的界面中,输入一下这个仓库的名字 happypeter.github.io 就可以把这个仓库删除了。
删除仓库之后,我们要做的事情是:
如何把本地的已有仓库,上传到 github.com
第一步:创建本地项目
项目名称是任意的,但是我们这里想做的事情是上传比较,所以,本地这个仓库名,也必须是:
$ mkdir happypeter.github.io
本地项目名要和 github.com 我们一会儿要创建的仓库名保持一致。
然后,我们就可以把我们想要上传的内容拷贝到这个文件夹内,并制作本地版本。
拷贝进来的内容,要符合第一天我们介绍的 github pages 的格式规范(其实最重要的一点就是每个 .md 文件中都要有头部,参考第一天我们的文档中的介绍)。
第二步:创建 github.com 上的同名仓库
到 github.com 上点 New repository
按钮,新建一个项目,
项目名叫做 happypeter.github.io
。
注意,不要勾选任何选项,尤其是不能默认创建 README.md 文件。
创建完成之后,页面上有两个选择,其中第二个是
or push an existing repository from the command line
翻译:或者把一个已经存在的仓库从命令行推送上来
我们当前就属于这个情况。上传方式有两种 HTTPS 和 SSH ,我们推荐的方式是 SSH,点一下页面上 SSH 字样的按钮。
接下来就按照页面上显示的两步来走。
尝试推送 push
到本地命令行,进入我们的本地项目文件夹
$ cd happypeter.github.io
然后执行下面两步:
$ git remote add origin git@github.com:funnydeer/funnydeer.github.io.git
- 查看是否成功即门牌号的存放位置:cat .git/config
$ git push -u origin master
如上所示:
git@github.com:funnydeer/funnydeer.github.io.git
这个是远端仓库地址。第一个命令本身的意思是把远端仓库地址记录到本地仓库中。
下一步 git push -u origin master
就是真正进行上传代码的工作了。
但是执行结果是:
Please make sure you have the correct access rights
执行失败,解决方法就是添加 ssh 公钥到 github.com 。
第三步:添加 ssh key
现在需要达成开发机和 github.com 的互信。
因为开发过程中,我们需要用本地机器向 github.com 的仓库中 写东西( git push ),同时我们又不想每次都输入密码,所以我们就用 ssh key 的形式来达成互信,过程如下:
- 在本地机器上生成一对 ssh key ,一个公钥,一个私钥
- 把公钥添加到 github.com
具体操作如下:
- 首先本地运行
ssh-keygen
命令,可以在 ~/.ssh 文件夹下生产 ssh key - 到
~/.ssh/id_rsa.pub
也就是公钥文件中,拷贝公钥字符串 - 把字符串粘贴到 github.com -> setting -> ssh keys -> add
这样添加 ssh key 的工作就完成了,以后我们执行 git push 这样的命令就不会看到如下错误了:
...permission denied...
...make sure ... correct access right ...
大功告成。
在Coding.net上的不同
- 要新建分支
查看当前分支:git branch
在本地创建coding-pages新分支:git checkout -b coding-pages
在远端创建相同分支并把本地分支内容上传:git push -u origin coding-pages
Github Pages 显示网站
上面的步骤操作完成,就可以在 happypeter.github.io 看到网站的首页了。 当然我们这里依然是使用 Github Pages 服务,所以是可以添加 md 文件的, 具体的操作方式参考第一节。
git clone 命令
要想把 github 上的一个项目代码下载到本地有两种方式,一种就是普通下载( download )。但是,开发者 基本上会选择另外一种方式,就是 clone 。
$ git clone git@github.com:happypeter/digicity.git
clone 的特点就是不仅仅可以得到最新代码,而且可以得到整个改版历史。而普通下载只能得到最新版本。
git 各个命令的作用
git push
把本地仓库中有,而远端对应仓库中没有的版本推送到远端git pull
把远端仓库中有,而本地对应仓库中没有的版本拉到本地git clone
把远端仓库,克隆到本地
学习 Github/Git 的学习目标
- 知道 git 是版本控制工具
- 每个同学要有一个 github 仓库
- 已经添加 ssh key 互信,也就是可以从本地仓库推送内容( git push )到 github 仓库
- 可以在本地仓库中任意添加,删除,修改文件,并作成版本
这样,github/git 的初级使用我们就有能力完成了。但是,作为成熟开发者,github 上面会发 push request ,本地 git 会开启新分支,都是必备知识。暂时我们先不涉及。
承前启后
课程进行到现在,程序员三大基本工具,我们就介绍完毕。
- 编辑器 atom
- 命令行 Linux
- 版本控制 Git/Github
其实呢,这三个工具的学习都不能一蹴而就,都是在实际写代码过程中逐步完善的。但是这里 Peter 有三门课程可以推荐:
以上三门课程,大家可以根据自己所处的阶段,有选择的学习里面的部分章节。
学习上面三大工具的目的,就是为了更加高效的写代码 。