源代码管理工具——Github

随笔1周前发布 玺泽
1 0 0

目录:
Github简介

     1.Github基本功能

     2.Github文件的相关操作 

     3.Github的创建与应用

Github特点

Github与TFS的区别

一、Github简介

GitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名GitHub。GitHub于2008年4月10日正式上线,除了git代码仓库托管及基本的 Web管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。目前,其注册用户已经超过350万,托管版本数量也是非常之多,其中不乏知名开源项目 Ruby on Rails、jQuery、python等。

1、Github基本功能

主页面为:
源代码管理工具——Github

GitHub可以托管各种git库,并提供一个web界面,但与其它像SoureForge或Google Code这样的服务不同,GitHub的独特卖点在于从另外一个项目进行分支的简易性。为一个项目贡献代码非常简单:首先点击项目站点的”fork”的按钮,然后将代码检出并将修改加入到刚才分出的代码库中,最后通过内建的”pull request”机制向项目负责人申请代码合并。已经有人将GitHub称为代码玩家的MySpace。GitHub进行分支就像在Myspace(或Facebook…)进行交友一样,在社会关系图的节点中不断的连线。GitHub项目本身自然而然的也在GitHub上进行托管,只不过在一个私有的,公共视图不可见的库中。开源项目可以免费托管,但私有库则并不如此。在GitHub,用户可以十分轻易地找到海量的开源代码。

(1)工具栏

LOGO:点击GitHub的LOGO就会进入控制面板。

搜索窗口:在这里输入想找的用户或代码片段,就可以搜索到与之相关的信息。

Pull requests:这里查看用户仓库最新的推送请求信息。
Issues:这里查看用户最新的问题推送信息。
Marketplace:这里提供最新的软件,是代码软件集市。
Explore:从各个角度介绍GitHub上的热门软件。
+:创建新的仓库、旧仓库搬家、管理发布一些没有必要保存在仓库中的代码、登录组织
头像、用户:查看你的用户资料、你关注的项目、你的Gists、帮助、设置、退出登录
(2)控制面板

News Feed:显示当前已Follow的用户和已Watch的项目的活动信息,用户可以在这里查看最新动向。
Broadcasts:主要用于接受GitHub公司发来的通知或使用技巧的小贴士
Repositories you contribute to:显示用户做过贡献的仓库。按贡献时间的先后顺序排列。
Your repositories:按更新时间顺序显示用户的仓库。标有钥匙图案的是非公开仓库,标有类似字母Y图案的是用户Fork过的仓库。
(3)仓库

仓库的URL形式为:https://github.com/用户名/仓库名; 这个页面可以说是各个软件的大门。循着目录找下去我们就可以查阅自己想要的文件。如果有相应权限,还可以对文件的内容直接进行编辑、提交。

Code:显示该仓库中的文件列表。仓库名下方是该仓库的简单说明和URL。
Issue:用于BUG报告、功能添加、方向性讨论等,将这些以Issue形式进行管理。Pull Requests时也会创建Issue。旁边显示的数字是当前处于Open状态的Issue数。
Pull Requests:在Pull Requests中可以列表查看并管理Pull Request。代码的更改和讨论都可以在这里进行。旁边显示的数字表示尚未Close的Pull Request的数量。
Wiki:Wiki是一种比HTML语法更简单的页面描述功能。常用语记录开发者之间共享的信息或软件文档。数字表示当前Wiki的页面数量。
Insights:洞察:Pulse:显示该仓库最近的活动信息。该仓库中的软件是 无人问津,还是在火热的开发之中,从这里可以一目了然。
Graphs:以图表形式显示该仓库的各项指标。让用户轻松了解该仓库的活动倾向。
Network:以图表形式直观地显示出当前从宽的状态及Fork出的仓库的状态,同时会显示成员列表。
Settings:这里可以更改当前仓库的设置。用户必须拥有更改设置的权限才能看到这个菜单。
Clone or download:Clone时候的地址,或者download的选项。
commit:这里可以查看当前分支的提交历史。左侧的数字表示提交数。
Branch:可以查看仓库的分值列表。左侧的数字表示当前拥有的分支数。
Releases:显示仓库的标签(Tag)列表。同时可以将标签加入时的文件以归档形式(ZIP、tar.gz)下载到本地。软件在版本升级时一般都会打标签,如果需要特别版本的文件,可以从这里寻找。
Contributor:显示对该仓库进行过提交的程序员名单。如果您也对该仓库发送过Pull Request并被采纳,那么在这里就能找到自己的名字。左边的数字是程序员的人数。
Branch:显示当前分支的名称。从这里可以切换仓库内分支,查看其他分支的文件。
Path:显示当前文件列表的路径。点击上级目录的链接就可以直接移动至该目录。
Fork this project and Create new file:可以在当前仓库的路径下新建文件。新建文件作为一个新的提交记录在Fork出的分支中。如果用户对该仓库拥有足够权限,该项则显示为Create a new file,用户可以直接在当前路径下新建文件。
Upload files:上传文件到GitHub的仓库。
Find file:可以查看当前分支的文件。
files:可以查看当前分支的文件。顶端为最新提交得相关信息。在文件或目录的列表中,从左至右分别为文件名称、该文件最新的提交日志、更新日期。点击目录或文件就可以查看相关内容。如果当前目录中包含README文件,那么在文件列表下方会显示README。
(4)Issue
在软件开发过程中,开发者为了跟踪BUG及进行软件相关讨论,进而方便管理,创建了Issue。管理Issue的系统成为BTS(Bug Tracking System,BUG跟踪系统)。
GitHub也为自身加入了BTS功能。在GitHub上,可以将它作为软件开发者之间的交流工具,多多加以利用。一下几种情况可以使用这个功能:发现软件的BUG并报告;有事想向作者咨询、探讨;事先列出今后准备实施的任务

Issue除BUG管理之外还有许多其他用途。在软件开发者的圈子中,将Issue用于多种用途的情况已经司空见惯。

(5)Pull Request
Pull Request是用户修改代码后向堆放仓库发送采纳请求的功能,也是GitHub的核心功能。
在Pull Request页面能够列表查看当前处于Open状态的Pull Request。通过点击页面左部和上部的选项可以进行筛选和重新排列。
在列表中点击特定的Pull Request就会进入详细页面。页面上方显示着这次是从谁的哪个分支向谁的哪个分支发送了Pull Request。

Conversation:在Conversation标签页中,可以查看与当前Pull Request相关的所有评论以及提交的历史记录。人们在这里添加评论互相探讨,发送提交落实讨论内容的整个过程会按照时间顺序列出,供用户查看。选中需要引用的评论内容,按r就能引用评论。
Commits:在Commits标签中,按时间顺序列表显示了与当前Pull Request相关的提交。标签上的数字为提交的次数。每个提交右侧的哈希值可以连接到该提交的代码。
Files Changed:Files Changed标签页中可以查看当前Pull Request更改的文件内容以及前后差别。标签上的数字表示新建及被更改的文件数。只要在URL的末尾加上?w=1即可不显示空格的差别。将鼠标指针放到被更改的行号的左侧,我们会看到一个加号。点击这个加号,就可以在代码中插入评论。这样,评论是针对哪行的代码就一目了然。
(6)Wiki
Wiki是一个使用简答的语法就能编写文档的功能。所有有权限的人都可以对文章进行修改,所以比较适合多人共同编写文章的情况。创建、编辑文档时不必另外启动软件,适合用来针对更新频率较高的软件进行文档等信息方面的汇总。
与Issue和Pull Request相同,Wiki也支持GFM语法,所以可以轻松创建表现力丰富的文档。Wiki功能本身的数据也在Git中进行管理。点击Clone URL按钮可以将当前的Wiki的Git仓库URL复制到粘贴板中。用户能够通过Clone操作获取Wiki仓库,然后在本地创建、编辑页面,进行提交再Push,便可以完成对Wiki的创建及编辑工作。在Pages标签页中可以查看Wiki页面。

(7)Pulse
Pulse是体现该仓库软件开发活跃度的功能。近期该仓库创建了多少Pull Request或Issue,有多少人参与了这个仓库的开发等。都可以在这里一目了然。
根据这个页面,用户可以判断目前这个软件是否正在被积极开发,或者持有仓库修改权限的人是否在认真的记性BUG修正等维护工作。

active pull requests:页面中Overview的左半部分显示了特定期间内活动过的Pull Request数。点击proposed-pull-request则可以按创建的先后顺序查看Pull Request的概要及链接。通过这些信息,用户就可以了解软件最近正在开发哪些功能。
active Issues:页面中Overview的右半部分显示了特定期间内活动过的Issue数。通过观察Issue的整体动向,用户能够知道这个软件是否有人在积极维护与支持。对方仓库越是活跃,用户发送的BUG报告和相关探讨就越可能收到回应。
Commits:Overview下方显示的是与提交相关的信息。左侧部分包含了如下几类信息:编写过代码的人数、提交的次数、default branch中修改过的文件数、default branch中添加的行数、default branch中删除的行数,通过这些信息,用户就可以大致把握该仓库中活跃开发者的人数。另外,右侧图表显示了这些开发者具体发送的提交数。

2、Github的相关操作

(1)Github文件的相关操作

点开文件后会显示出文件的内容,同时右上角会显示用于该文件的菜单。Edit可以对文件内容进行编辑并提交。Raw可以直接在浏览器中显示该文件的内容。使用这个URL,就能通过HTTPS协议获取该文件。Blame能够按行显示最新提交的信息。History可以查看该文件的历史记录。Delete可以删除这个文件。
文件内容的左侧会显示该文件的行号。假如我们点击第十行的行号,这一行就会被高亮标记为黄色,同时URL末尾会自动添加#L10。使用这儿URL,程序员们在交流时,就可以将讨论明确指向某一行。另外,如果将#L10改为#L10-15,则会标记该文件的第10到15行。

(2)查看差别
在GitHub上,直接修改URL就可以让用户以多种形式查看差别。这里我们以Ruby on Rails仓库为例,介绍直接修改URL的一些技巧。

查看分支间的差别:

比如我们想看4-0-stable分支与3-2-stable分支之间的差别,可以像下面这样将分支名加到URL里。
源代码管理工具——Github

这样,就可以查看两个分支间的差别了。可以看到,有65名程序员经过1710次提交,完成了3.2版本到4.0版本的升级工作。

查看与几天前的差别
假如我们想看master分支在最近7天内的差别,可以像下面这样将时间加入URL:
源代码管理工具——Github

这样,就可以查看这段期间内的差别。

Day、Week、Month、Year指定期间可以使用以上四个时间单位。如果差别过大则不会列出所有提交,只显示最近的比部分。

查看与指定日期之间的差别
假设我们想查看master分支2013年1月1日与现在的区别,可以将日期加入URL:
源代码管理工具——Github

这样,便可以查看与指定日期之间的差别。但是如果指定日期与现在的差别过大,或者指定日期过于久远,则无法显示。由于可以从多种角度查看差别,所以GitHub也称得上是一个优秀的源代码查看器。

(3)其他:

添加图片:拖拽或者选择下方的selecting them
添加标签以便整理:Issue可以通过添加标签(Label)来进行整理。添加标签后,Issue的左侧就会显示标签。点击页面左侧的标签,还可以只显示该类标签的Issue。标签可以自由创建。(其实在Issue比较少的情况下,不必每个都添加标签,大可等Issue积攒到一定数量,只有进行筛选才能清晰把握时再添加标签。)通过提交信息操作Issue:在GitHub上,只要按照特定的格式描述提交信息,就可以像一般BTS带有的功能那样对Issue进行操作。在相关Issue中显示提交:每个Issue标题下面都分配了诸如#24的编号。只要在提交信息的描述中加入#24就可以在Issue中显示该提交的相关信息,使关联的提交一目了然。
Close Issue:如果一个处于Open状态的Issue已经处理完毕,只要在该提交中以下列任意一种格式提交信息,对应的Issue就会被Close:fix #24、fixes #24、fixed #24、close #24、closes #24、closed #24、resolve #24、resolves #24,将特定的Issue转换为Pull Request:在GitHub上,如果给Issue添加源代码,就会变成我们马上要讲到的Pull Request。

二:Github的创建与应用

(1)创建账号

GitHub官网地址:https://github.com/

点击Sign up注册GitHub账号
源代码管理工具——Github

填写用户,邮箱,密码
源代码管理工具——Github

点击create an account,进行邮箱确认
源代码管理工具——Github

点击continue进行下一步,进行问卷(可选)

(2)创建应用

1.点击右上角图标,选择settings
源代码管理工具——Github

2.选择最后一个Developer settings
源代码管理工具——Github

3.点击绿色按钮Register a new applications

源代码管理工具——Github

4.以下分别为项目名称,主页地址,项目描述,回调地址
源代码管理工具——Github

完成项目注册,获取到Client ID 和 Client Secret

三:Github特点

Github是一个代码托管平台和开发者社区,开发者可以在Github上创建自己的开源项目并与其他开发者协作编码。创业公司可以用它来托管软件项目,开源项目可以免费托管,私有项目需付费。Github可以托管各种git库,并提供一个web界面,但与其它像SourceFore或Google_ Code这样的服务不同,Github的独特卖点在于从另外一个项目进行分支的简易性。为一一个项目贡献代码非常简单:首先点击项目站点的“fork”的按钮,然后将代码检出并将修改加入到刚才分出的代码库中,最后通过内建的“pull request”机制向项目负责人申请代码合并。已经有人将Github称为代码玩家的HySpace。

优点:

(1)完整的支持Markdown语言,而且支持Emoji表情

(2)支持直接复制图片到页面,会自动上传图片(非常好的功能,知乎也支持)

(3)比较好的支持Mobile。虽然github没有手机客户端,但是一般开发者,写好的blog都(4)会通过微博进行分享,所以点击过来之后,就可以在手机浏览器里面访问

(5)使用github原生的功能,就可以进行类似评论的功能

(6)支持@用户功能,支持标签

(7)功能设计简洁实用上手很快,可用性好,已有很多相当质量的各类项目和优秀开发者在上面

缺点:

(1)国内访问速度太慢,经常出现connect time-out

(2)wiki功能太弱,直接导致文档(对于开源项目很重要)经常被分离到一个独立站点

(3)免费套餐不支持私有项目,无非解决企业内部的需求,github:fi价格过高(最便宜要$5,000/年)

(4)没有集成社交分享功能。比如后面可以分享到微博,微信朋友圈等

四、Github与TFS的区别

(1)team foundation是微软提供的版本控制服务,集成在Visual Studio中。当你新创建一个工程之后,如果需要使用team foundation,需要在菜单中选择TEAM->Connect to Team Foundation Server。通过微软的账号连接到服务器上。然后选择一个远程的代码库(通过网页登陆visual studio online创建的)。之后才可以提交代码。版本控制需要联网。微软提供的这项服务5人以下免费。

git作为分布式版本控制,使用的时候非常灵活。它允许用户在本地创建版本控制的仓库,在非联网状态下就可以进行代码的提交,比较,历史查看等。在完成本地的提交之后,用户可以选择把代码提交到远程服务器上,用于不同环境的代码同步。依然举例Visual Studio,在创建工程的时候你可以把git勾上,这样就可以在本地管理代码。在需要远程同步的时候,也可以通过Team Foundation Server提交git的代码。git不是微软的专属,你可以把git提交到很多远程服务器上,最著名的就是Github。目前国内也出现了很多免费的Git代码服务,比如git开源中国,git京东,等。

(2)TFS的操作很多余,而GitHub for Windows操作起来很简单。在GitHub上你可以立即查看更改后的文件以及更改的内容

(3)GitHub变得越来越流行,最近Github发布了Github for Windows则大大降低了学习成本和使用难度,它甚至优于TFS。微软也开始逐渐从TFS向GitHub转移了。不是TFS 输给了 Github,而是 TFS 原生的源代码管理输给了 GIT。TFS 定位并不是源代码管理,而是一个团队工具,贯穿需求,开发,测试,发布各个流程提供自动化工具。

© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...