GitHub的使用
GitHub简介
GitHub
是一个利用Git进行版本控制、专门用于存放软件代码与内容的共享虚拟主机服务。
它由GitHub
公司(曾称Logical Awesome)的开发者Chris Wanstrath、PJ Hyett和Tom Preston-Werner使用Ruby on Rails
编写而成。
GitHub
是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名GitHub
。
官网:https://github.com/
配置ssh密钥
在使用github
作为远程仓库之前,需要和服务器建立一个安全的连接,可以通过ssh key
的配置方式。
由于SSH
的存在,github
才能进行用户的识别,以保证客户端和远程仓库的操作是安全且可靠的。
生成ssh key
执行命令:ssh-keygen -t rsa -C "your_email@youremail.com"
为主机生成新的ssh key
,即公钥(id_rsa.pub)和私钥文件(id_rsa)
这里会提示输入文件保存路径和密码,直接按3次Enter跳过
windows生成路径:C:\Users\Administrator\.ssh
配置ssh key
将公钥文件用记事本打开,复制全部内容,进入GitHub
,点击个人头像,选择settings --> ssh keys --> New SSH key
输入任意title,将公钥内容拷贝到 key 中保存即可
基本操作
1.创建仓库
点击右上角的“+”号按钮,选择New repository
进行新建仓库操作
输入仓库名称、描述,选择项目类型(私有收费),选择勾选是否初始化readme文件等,点击create repository
按钮创建
2.上传代码
生成的仓库有两种链接方式,ssh链接和https链接,使用https链接,每次与远程仓库操作都需要输入用户名和密码,而使用ssh连接第一次需要同意使用ssh进行连接,之后就可以直接操作远程仓库。
将本地项目目录website提交到远程新建的仓库,步骤如下:
git init
git add .
git commit -m "init project"
git remote add origin git@github.com:ruoxiyuan/website.git
git pull origin master --allow-unrelated-histories
git push -u origin master
执行完毕后刷新远程仓库,本地仓库代码已经同步到远程仓库中了
3.添加合作者
如果想要多人协作开发这个项目,可以在项目的setting中找到collaborators
,输入用户名或者邮箱进行用户添加
4.删除仓库
在项目的settings配置中,拉到最底下,选择delete this repository
GitHub的一些概念
Repository
仓库的意思,即你的项目,你想在GitHub
上开源一个项目,那就必须要新建一个Repository
lssue
就是你开源了一个项目,别人发现你的项目中有bug,或者哪些地方做的不够好,他就可以给你提个Issue
,即问题,多个问题,也就是Issues
,然后你看到了这些问题就可以去逐个修复,修复好了就可以一个个的Close掉
Star
给项目点赞,点击star
,表示你对这个项目的认可,可以在个人头像的下拉菜单中查看your starts
Fork
分叉,例如你开源了一个项目,别人想在你这个项目的基础上做些改进,然后应用到自己的项目中,这个时候他就可以Fork
你的项目,此时他的GitHub
主页上就多了一个项目,只不过这个项目是基于你的项目基础(本质上是在原有项目的基础上新建了一个分支),他就可以随心所欲的去改进,但是丝毫不会影响原有项目的代码与结构,改进后也可以尝试发起pull request
给原项目作者
PullRequest
发起请求,这个其实是基于Fork
的,还是上面那个例子,如果别人在你基础上做了改进,后来觉得改进的很不错,于是就想把自己的改进合并到原有项目里,这个时候他就可以发起一个PullRequest
(简称PR),原项目作者就可以收到这个请求,这个时候他会仔细review
你的代码,并且测试觉得OK了,就会接受你的PR,这个时候你做的改进就会应用到原有项目中了,这样也是为开源项目贡献了自己的一份力量。
Watch
观察项目,如果你Watch
了某个项目,表示你以后会关注这个项目的所有动态,以后只要这个项目发生变动,如别人提交了pull request
、被别人发起了issue
等等情况,你都会收到关于这个项目的通知提醒
Gist
要点的意思,有些时候你没有项目可以开源,只是单纯的想分享一些代码片段,就可以使用Gist