如果大家打算学习如何使用Git,但却不打算自行配置服务器,那么GitHub可能会成为各位最理想的施展平台。
并不只是我自己有这样的想法。在最近的一次现场走访当中,Groupon公司人才发掘主管告诉我,该公司最近已经把招聘英才的阵地由原本的简历网站转移到了GitHub当中。
如果这还不足以推动大家学习Git,那么免费教程算不算另一种吸引力?各位朋友们运气不错,请花上一个小时跟随本文并加以实践,GitHub之旅就此开始。
首先寻找一个Git项目——或者直接使用我们的示例
Git采用的是每项任务一个分支的处理模式;本地副本就是大家正在使用的分支。我们可以向其提交内容、进行回滚并定期将其推送至GitHub服务器。基础操作只分为添加、提交与推送三种。GitHub是一套需要付费的企业代码库,但其开源项目是完全免费的。
在今天的文章中,我们将创建一个开源项目并将其保存在GitHub当中。我们只需要少部分代码即可完成整个流程。
作为***步,大家首先选择一个包含部分代码以及创建步骤的项目。如果大家手头没有任何可用代码,也可以使用The Factory Simulation——别忘了,它需要有Ruby的支持才能正常运行。大家只需创建一个子目录、再在其下另创建一个名为“lib”的子目录,而后将五个文件复制到正确的位置。
为了理解代码内容,大家需要对Ruby具备初步了解。要运行该应用程序,我们前往根目录并通过命令行输入“ruby factory_multi3.rb”。运行测试的话,则需要将目录切换至测试目录并输入“ruby run_all.rg”。(这是由代码编写者Matt Heusser贡献的内容,基于由Zach Spencer贡献的开源许可。)
下一步,创建一个GitHub账户
访问github.com并登录。现在下载并安装***版本命令行工具。利用这套工具,我们可以通过Web界面创建一套库,而后利用命令行将我们的代码导入至GitHub当中。
从登录页面开始,点击右侧的绿色“+New Repository”按钮:
首先创建一套库。如果大家无法顺利进行,可以考虑参考GitHub的使用指南。
库创建完成之后,启动命令行并运行各项命令。注意,请确保已经将目录变更为代码所在目录。
- touch README.md
提示:Windows不支持“touch”命令。大家可以编辑并保存一个名为README.md的空白文本文件。
- git init
- git add *
- git commit -m "first commit"
- git remote add origin https://github.com/(Username)/(Repository_name).git
- git push -u origin master
下面输入大家的用户名与密码内容。恭喜各位,现在大家已经在GitHub拥有了自己的公开代码——其URL为http://github.com/(用户名)/(库名称)——全世界都可以查看其内容。
我刚刚做了些什么?
首先,利用“touch”命令,我们创建了一个自述文件,大家以在线方式查看库的根目录时git init会显示其内容。通过这个文件,我们可以告知用户们该如何运行我们的程序。
Git init会在本地目录中创建一个空白的Git库。“Add *”负责将本地库中的所有文件添加到该库当中及其子目录当中,同时将所有已提交的变更整理至一套变更集当中。请注意命令中的-m结尾,它代表的是版本说明。如果大家不添加-m参数,那么Git会强制要求我们在vi中对其进行编辑。
接下来,我们利用Git远程添加功能将自己的变更内容连接至GitHub。如果大家运行有自己的服务器,则只需要变更其中的URL即可。***,我们利用git push将变更结果推送至GitHub。
现在,如果我访问https://github.com/MattExcelon/factory6(我刚刚导入的内容),则会看到README.md文件中没有任何内容。我们对其进行编辑,并添加如下文本。大家可以直接把内容剪切并粘贴进去。
- The Factory Simulation
- From CIO.com, uploaded by (name), based on the work of Matthew Heusser
- Matt@xndev.com
- Distributed under the GNU GPL 2.0 license:
- http://choosealicense.com/licenses/gpl-2.0/
- Imagine a factory that has a number of stations. Each day, work proceeds through
- the stations.
- The stations have high variability but are balanced. We simulate this with a six
- sided die. Users enter the number of stations and days and the application shows
- how work processes. The advanced version, factory_multi3.rb allows you to simulate
- multiple runs of the factory (run it a thousand times and take the averages) or
- change the number of dice.
- ## Dependencies
- This code developed and tested under ruby 2.0.0p247. As long as you have ruby 1.9.3
- or higher you should be fine.
- ## Running the Simulation
- 1. `cd this/project/directory`
- 2. `ruby factory.rb` or `ruby factory_multi3.rb`
- ## Running the Tests
现在大家已经对代码作出了变更,下面需要将其提交至服务器端。因此:
- git add READM.md
- git commit -m “Updated the Readme to provide information”
- git push
完成以上步骤后,在我们的浏览器中刷新http://github.com/(用户名)/(库名称)并查看显示出的README内容。大家会注意到,其中的井号(#)代表Markdown语言的一种type,用于创建标题。(大家可以点击此处查看GitHub关于Markdown的帮助信息。)
创建自己的库之后
GitHib不仅仅是一个网站,它代表的是一整个社区。大家可以关注其他用户、关注项目工程并获取与变更相关的通知信息;GitHub甚至提供建议指导各位从零开始进行体验。
除了自己的作业内容之外,大家可能还希望保留其他用户的工程副本并对内容作出修改。要对代码进行fork,可以查看对应GitHub库(下图地址为https://github.com/taq/vim-refact)并点击右侧的“Fork”。大家可以建立属于自己的版本号,并使其自动重新定向至我们的代码库。
在自己的页面中(目前的URL为https://github.com/heusserm/vim-refact),大家会在窗口右侧看到“HTTPS clone URL”。在命令行中,进入Git安装根目录并输入以下内容:
- git clone (URL you copied)
Git会在我们的本地设备上为对应库创建一套副本,现在大家可以对其进行添加、提交以及推送操作。
这些变更内容会被定位至我们自己的库,请放心、不会影响到任何其他用户。一切准备就绪后,大家可以通过发送请求通知其他用户我们对代码作出的变更,并让他们帮忙进一步雕琢自己的开发成果。
在今天的文章中,我们主要关注的是Git的一部分基本要素——具体来讲,如何向GitHub添加/提交/推送代码,以及如何创建代码库。在GitHub上拥有自己的代码成果是吸引招聘者眼球的有效手段。虽然创建个人项目需要投入大量时间与精力,但这一切足以让招聘者积极与我们联系甚至提供理想的工作岗位。
我们已经在GitHub上创建了一套功能完备的应用程序,并对其进行了测试。下一步待完成的工作应该是将其与持续集成(简称CI)系统进行整合,例如Jenkins,并将结果推送至GitHub以为我们的软件生成新的构建/测试运行流程。
但这就是下一篇文章要聊的内容了,我们到时候见。