借助GitHub托管你的项目代码
PS:话说自己注册了GitHub都很久了,却没有怎么去弄,现在系统学习一下,也把自己的学习经历总结下来share给大家,希望大家都能把GitHub用起来,把你的项目代码happy地托管起来!
一、基本概念
1.1 必须了解的概念
(1)仓库 - Repository
仓库即你的项目,你想在GitHub上开源一个项目,那就必须要新建一个Repository。如果你开源的项目有多个,那么你就有多个Repositories。
(2)收藏 - Star
收藏项目,方便下次查看。如果你的项目被收藏的次数越多,那么你的项目也就越受广大开发者的欢迎咯。
(3)复制克隆项目 - Fork
如果你开源了一个项目,别人想在你这个项目的基础之上做些改进,然后应用到自己的项目中,这时他就可以Fork你的项目,然后他的GitHub主页上就多了一个项目,只不过这个项目是基于你的项目为基础(相当于别人拿到了一个副本)。Fork之后,他就可以随心所欲地去改进,但是丝毫不会影响原有项目的代码与结构。
(4)发起请求 - Pull Request
如果别人在你的项目基础之上做了一些改进,并且觉得改得很不错,应该要把这些改进让更多的人受益。于是,他就想把自己的改进合并进原有项目之中,这时他就可以发起一个Pull Request。而原有项目创建人也就是你,可以收到这个请求,这个时候你可能会仔细review他的代码,并且测试后觉得OK,就可以接受他的Pull Request,之后他做的改进就可以融入到原有项目之中了。
(5)关注 - Watch
类似于微博中的关注,如果你Watch了某个项目,那么以后只要这个项目有任何更新,你都会第一时间收到关于这个项目的通知提醒。
(6)事务卡片 - Issue
你开源了一个项目,别人发现你的项目中有bug,或者哪些地方做的不够好,他就可以给你提一个Issue(即问题)。你如果看到了这些Issue,就可以逐个去Fix修复,修复OK之后就可以一个一个地Close掉。
(7)GitHub主页
如果你注册了一个GitHub账号,那么久会有一个属于你的GitHub主页,该页面左侧主要显示用户动态以及关注用户/仓库的动态,右侧则显示所有的Git库。
(8)仓库主页
仓库主页主要显示项目的信息,如:项目代码、版本、收藏/关注/Fork情况 等等。
(9)个人主页
个人信息:头像、个人简介、关注我的人,我关注的人,我关注的Git库,我的开源项目,我贡献的开源项目信息 等等。
你可以通过下图“形(Xie)象(E)”地理解GitHub主页。
看完上面这张图,你是不是秒懂呢?
1.2 必须完成的准备
要使用GitHub,首先必须得注册一个GitHub账号啦!
注册过程很easy,就跟你平时注册小网站会员一样,详细信息可以浏览:点此了解注册详情
需要注意的地方就是,选择Free免费账号完成设置!那么收费的跟免费的有什么区别呢?私有的仓库只有自己或者指定的朋友才有权限操作。
注册完成之后,记住要验证邮箱!如果未验证邮箱,那么你是没法做后续操作的。
二、GitHub基本操作
2.1 创建仓库
在GitHub中点击New repository活着Start a Project即可:
现在我新建一个仓库,这个仓库假设是我写的一个数据结构的实例程序Demo程序库:
Step1.填写必要信息:
Step2.浏览仓库主页
2.2 创建文件
在刚刚的仓库主页中点击 Create new file 按钮,即可进入新文件页面:
Step1.填写必要信息之文件信息
Step2.填写必要信息之记录信息
Step3.浏览提交文件记录
Step4.浏览具体文件信息
2.3 编辑文件
在指定的文件名处直接点击文件名链接,即可进入编辑界面:
Step1.点击文件名:
Step2.修改文件信息
假如我们要加入一行文本信息:
继续填写提交记录日志信息:
Step3.浏览修改后的文件
2.4 删除文件
在指定的文件名处直接点击文件名链接,即可进入文件信息界面,点击删除按钮:
Step1.点击删除按钮
Step2.填写日志记录并点击Commit Changes
Step3.删除的文件不会出现在项目结构中,只能通过提交日志记录查看:
2.5 上传文件
在仓库主页点击Upload files按钮进入上传页面,选择要上传的文件,点击上传即可。注意:这里可以一次性上传多个文件。
2.6 搜索仓库文件
在仓库主页点击Find file按钮,即可进入搜索页面:
假如我要搜索log,由于项目中没有log文件,所以没有搜索结果:
2.7 下载/检出项目
在仓库主页点击Clone or download按钮,即可弹出下载提示框:
2.8 GitHub Issues
假如张三发现了李四的开源项目中存在一个bug,那么张三就可以为这个项目新建一个issue,我们可以把它理解为项目的问题列表,参与这个项目的开发者们可以在问题列表中进行交流:
Step1.新建Issue
Step2.填写Issue信息,告知项目开发者
Step3.修复完成之后,可以回复Issue信息,告知提问者该Issue已修复
Step4.一般来说会由提问者来Close这个Issue,当然也可以由项目拥有者来Close。
2.9 Fork 复制克隆一个开源项目
假设我最近对StackExchange.Redis这个开源客户端项目很感兴趣,那么我可以Fork一下,看看有什么可以学习有什么可以优化的,我只需要点击Fork按钮,即可一秒建立一个Branch:
克隆之后,你的主页会多一个project,并且会注明forked from StackExchange.Redis
如果你在修改完善了部分代码之后觉得你想把你的change融入到原有项目之中,让更多的人受益,那么你可以发起一个Pull Request:
点击之后,会显示所有你的修改,相当于你在提交之前review一下你的修改记录,这里我啥也没改,所以显示 There isn’t anything to compare.
当你commit你的change之后,原有项目的所有者就会在他的GitHub主页看到谁谁谁提交了他的代码,并会看到你的comment。
这时,他就可以看到你做的文件修改,并选择review你的代码,最后决定是否merge到他的原有项目之中。
好了,现在我们来复习一下GitHub基本流程:
三、Git基本操作
3.1 安装Git
可以去官网选择下载,这里使用的是Git-2.9.0 64位版本:点我下载
全程傻瓜化安装,下一步即可,可以把命令模式和图形界面模式都勾选上。
3.2 Git基本流程
3.3 Git初始化操作及仓库管理
这里我们主要采用命令行模式,这也是Linux服务器的精髓所在,图形模式很easy,看看就会了。
(1)设置基本信息
-- 设置用户名
git config --global user.name 'zhangsan'
-- 设置账户邮箱
git config --global user.email 'zhangsan@qq.com'
新建一个文件夹作为你的Git Workspace,然后打开Git Bash命令行界面:
(2)初始化一个新的Git仓库
Step1.创建一个仓库文件夹,这里取名跟刚刚在GitHub里面一样的DataStructure.Demo.CSharp
Step2.在文件内初始化Git(创建Git仓库)
--初始化
git init
(3)向仓库中添加文件
假设我们写了一个MyArrayStack类,我们把他copy到该文件夹中,使用以下命令加入到暂存区中:
git add MyArrayStack.cs
然后我们需要将暂存区文件添加到仓库:
git commit -m 'add MyArrayStack.cs'
这时我们再通过git status查看,你会发现已经没有什么文件更改或要提交的文件了。
(4)修改文件
当你修改了文件之后,通过git status可以查看到你修改了什么东西,同样还是要经历提交到暂存区再提交到仓库的步骤,此处不再赘述。
(5)删除文件
当你不再想要某个代码文件时,你可以通过git rm filename的命令删除文件:
git rm MyArrayStack.cs
3.4 使用Git管理远程仓库
我们刚刚提到Git的基本流程是工作区到暂存区再到Git仓库,那么Git仓库和远程仓库又是如何联系起来的呢?
(1)Git克隆操作:将远程仓库复制到本地
git clone https://github.com/edisonchou/DataStructure.Demo.CSharp
(2)修改代码,按照老步骤提交到Git仓库
这里因为原始项目是啥也没有,所以我索性把我之前写的一个数据结构的Demo程序库直接拖动到了这个文件夹中。
-- 添加所有文件
git add --all
git status
git commit -m 'add solution code'
这时我们已经提交到了git仓库,需要同步到github远程仓库了:
git push
-- 后面可能会要求你输入账号和密码
这时我们再次进入GitHub主页,可以看到我们的项目已经有刚刚同步的代码了:
PS:如果出现git push错误,提示The requested URL returned error : 403 Forbidden while accessing.你可以输入用户名密码或者远程地址采用这种类型(vi.git/config)
将[remote "orgin"] url=https://github.com/用户名/仓库名.git
改为[remote "orgin"] url=https://github.com/用户名:密码@github.com/用户名/仓库名.git
四、GitHub Pages搭建网站
4.1 个人站点
GitHub要求个人站点的仓库名称必须是 用户名.github.io, 例如edisonchou.github.io
建立方法很简单,也是新建一个repository,然后填写你的个人站点名,例如 edisonchou.github.io。之后通过Git,你可以将你在本地开发的html网页同步到github,之后你就可以通过域名访问你的个人站点啦!
发布之后的个人站点如下:
4.2 项目站点
搭建后的访问域名为:https://用户名.github.io/仓库名
(1)进入项目主页,点击Settings
(2)在Settings页面,点击Launch automatic page generator来自动生成主题页面
(3)新建站点基础信息设置
(4)选择主题
(5)生成网页
参考资料
(1)GitHub-百度百科
(3)怎么使用GitHub-知乎
(4)廖雪峰-Git教程
(5)杨晓辉-GitHub for Windows使用教程 => Windows下可以使用GitHub for Windows工具进行操作,很方便!
借助GitHub托管你的项目代码的更多相关文章
- 【转载】借助GitHub托管你的项目代码
PS:自己关注博客园有2年之久了,不久前才申请注册账号.GitHub也差不多一年多了,因英语水平刚刚及格,所以去GitHub没有博客园多,也是几个月前才注册了账号,前几天休息时看到 EdisonCho ...
- 转: 借助GitHub托管你的项目代码
转自:http://www.cnblogs.com/edisonchou/p/5990875.html 备注: 原贴关于github使用说明,非常详细易懂.建议看原帖. 借助GitHub托管你的项目代 ...
- windows环境下使用git客户端、github和tortoisegit管理项目代码
一.为什么 为什么不用svn? svn是一个优秀的代码和版本管理工具,使用svn只需要搭建好svn中央仓库,配置本地svn客户端即可,自从google code关闭服务之后,互联网上已经没有非常好的公 ...
- github上传本地项目代码
进入github首页,点击新项目new repository,如下图所示: 然后进入如下页面,填写信息: 最后点击Create repository,生成如下页面: 红色圈圈画的步骤,先点击Clone ...
- 如何在github上传本地项目代码
首先你要在github上申请一个账号 网址:https://github.com/ 然后你要下载一个git工具 网址:https://gitforwindows.org/ 进入官网直接下载就行,下载完 ...
- github上传的项目代码语言类型修改
我们在访问gitHub的时候,经常会看到如下的语言标记,那么这个是如何设置的呢,下面我就整理下具体的操作步骤: 首先在项目根目录下创建一个文件,文件名为.gitattributes 文件内容为: *. ...
- GitHub托管
借助GitHub托管你的项目代码 PS:话说自己注册了GitHub都很久了,却没有怎么去弄,现在系统学习一下,也把自己的学习经历总结下来share给大家,希望大家都能把GitHub用起来,把你的项 ...
- iOS:使用Github托管自己本地的项目代码方式一:(Xcode方式:开发工具Xcode配置Git,由Xcode-->Source Control-->Commit)
管理代码的地方主要有:Github(国外流行).CocoaChina.Cocoa4App.中国开源社区.CSDN.博客园.简书等等..... 现在主要介绍如何使用Github托管自己的项目代码. 尊重 ...
- 提交代码到github托管
廖雪峰官网:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000,感觉初学很棒的一个地 ...
随机推荐
- opencv源码:cascadedetect
级联分类器检测类CascadeClassifier,提供了两个重要的方法: CascadeClassifier cascade_classifier; cascade_classifier.load( ...
- 设计爬虫Hawk背后的故事
本文写于圣诞节北京下午慵懒的午后.本文偏技术向,不过应该大部分人能看懂. 五年之痒 2016年,能记入个人年终总结的事情没几件,其中一个便是开源了Hawk.我花不少时间优化和推广它,得到的评价还算比较 ...
- JS核心系列:浅谈原型对象和原型链
在Javascript中,万物皆对象,但对象也有区别,大致可以分为两类,即:普通对象(Object)和函数对象(Function). 一般而言,通过new Function产生的对象是函数对象,其他对 ...
- C语言 · 薪水计算
问题描述 编写一个程序,计算员工的周薪.薪水的计算是以小时为单位,如果在一周的时间内,员工工作的时间不超过40 个小时,那么他/她的总收入等于工作时间乘以每小时的薪水.如果员工工作的时间在40 到50 ...
- JavaScript String对象
本编主要介绍String 字符串对象. 目录 1. 介绍:阐述 String 对象的说明以及定义方式. 2. 实例属性:介绍 String 对象的实例属性: length. 3. 实例方法:介绍 St ...
- 一起学微软Power BI系列-使用技巧(3)Power BI安卓手机版安装与体验
Power BI有手机版,目前支持安卓,苹果和WP,不过没有WP手机,苹果在国内还不能用,要FQ和用就不测试了.安卓的我也也是费了九牛二虎之力才把app下载下来,把方法分享给大家. FQ太麻烦,所以建 ...
- Android线程管理之ThreadLocal理解及应用场景
前言: 最近在学习总结Android的动画效果,当学到Android属性动画的时候大致看了下源代码,里面的AnimationHandler存取使用了ThreadLocal,激起了我很大的好奇心以及兴趣 ...
- MongoDB学习笔记三—增删改文档上
插入insert 单条插入 > db.foo.insert({"bar":"baz"}) WriteResult({ }) 批量插入 > db.fo ...
- 【Star CCM+实例】开发一个简单的计算流程.md
流程开发在CAE过程中处于非常重要的地位. 主要的作用可能包括: 将一些经过验证的模型隐藏在流程中,提高仿真的可靠性 将流程封装成更友好的界面,降低软件的学习周期 流程开发实际上需要做非常多的工作,尤 ...
- Maven入门详解
什么是Maven Maven,鼎鼎大名,在今天之前,我对于它一直是处于一种"只闻其名不见其人"的状态.之所以说"只闻其名",是因为Maven太有名了,它是Apa ...