Git与GitHub说明分析

感情迁移 提交于 2019-12-27 05:32:43

      Git是一个开源的分布式版本控制系统,用以有效、高速的处理各种规模的项目版本管理, 它是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件,后来得到广泛的使用。

      Github是一个代码托管平台和开发者社区,开发者可以在Github上创建自己的开源项目并与其他开发者协作编码。创业公司可以用它来托管软件项目,开源项目可以免费托管,私有项目需付费。Github同样可以被诸如Capistrano和Vlad the Deployer这样的部署工具所使用,而且GitHub已经有了一组引人注目的特性,除了命令式的库浏览器和一个项目Wik,GitHub甚至还包括了一个GitHub gem,以使通过shell方式使用GitHub更为方便。

      GitHub上已自动配置的Mac笔记本电脑,可以转换设置Linux或Windows机器。BOXEN是GitHub的自动化工具,设置和配置的Mac笔记本电脑软件开发或其他类型的工作,正在使用他们的开发人员等。其准备系统以自动方式和作为无差错尽可能用最少的干预工作。根据GitHub上,与一个新的开发机器上,他的Mac系统成立,并准备在30分钟内提交代码。

      作为开源代码库以及版本控制系统,Github目前拥有140多万开发者用户。随着越来越多的应用程序转移到了云上,Github已经成为了管理软件开发以及发现已有代码的首选方法。

       

     Git与Github在功能上相辅相成,但两者也有独自的过人之处,可谓是“巾帼不让须眉”啊!

     同样作为一个分布式的版本控制系统,在Git中并不存在主库这样的概念,每一份复制出的库都可以独立使用,任何两个库之间的不一致之处都可以进行合并。且GitHub可以托管各种git库,并提供一个web界面,但与其它像 SourceForge或Google Code这样的服务不同,GitHub的独特卖点在于从另外一个项目进行分支的简易性。为一个项目贡献代码非常简单:首先点击项目站点的“fork”的按钮,然后将代码检出并将修改加入到刚才分出的代码库中,最后通过内建的“pull request”机制向项目负责人申请代码合并。

     GitHub主要用Rails实现,在进行的post-commit集成小应用完全使用Merb编写,使用了Python的Pygments来做格式高亮显示,另外,还用了Ara T. Howard's Bj加上一些Ruby脚本来做我们的排队系统。当然,还采用了Ruby Grit库来和Git进行交互。

      在Windows领域两者也有极大的应用,GitHub 使用 git 分布式版本控制系统,而 git 最初是 Linus Torvalds 为帮助Linux开发而创造的,它针对的是 Linux 平台,因此 git 和 Windows 从来不是最好的朋友,因为它一点也不像 Windows。GitHub 发布了GitHub for Windows,为 Windows 平台开发者提供了一个易于使用的 Git 图形客户端。

     GitHub for Windows 是一个 Metro 风格应用程序,集成了自包含版本的 Git,bash 命令行 shell,PowerShell 的 posh-git 扩展。GitHub 为 Windows 用户提供了一个基本的图形前端去处理大部分常用版本控制任务,可以创建版本库,向本地版本库递交补丁,在本地和远程版本库之间同步。微软也通过CodePlex向开发者提供 git 版本控制系统,而 GitHub 创造了一个更具有吸引力的 Windows 版本。

      总的来说,两者关系可以这样描述:Git是一款免费、开源的分布式版本控制系统,而Github是用Git做版本控制的代码托管平台,相当于本地、公司服务器、Github网站服务器都装Git做版本控制,只不过Github的服务器强大些,对全球用户托管的项目用Git做版本控制,打个比喻即为“git是一张弓,github是靶子,你的源代码是箭!”

其次两者在使用方法上也应该有所借鉴和区分,一些常用命令如下:

git克隆项目(下载代码)

#git clone http://192.168.0.223/git/test

git clone git@github.com:laiweiwei/vms.git

git clone git@github.com:syking/smrt-lbs-new.git
复制粘帖方法:
git bash控制台--标题栏--右键--编辑--标记/粘帖
git更新内容
cd /d
cd play/smrt-lbs
git pull origin
提交到本地
cd /d
cd play/smrt-lbs
git add .
git commit -m "some string"
提交到服务器
git push -u origin master
删除文件(直接删除后需要重新用命令删除)
$ git rm  app/views/Application/index.html
rm 'app/views/Application/index.html'
查看文件状态
git status
举个例子:假设你的资料库默认分支为 master,当你有一个新的项目或者想法时
创建一个分支,然后在分支上开发,最后再合并到 master 上,具体操作方式如下:
创建新分支并命名,此处我们创建名为 new_sub 的分支 
git branch new_sub
移到新分支上
git checkout new_sub
开始你的工作并保存结果
添加所改动的文件以便提交
git add .
提交改动
git commit -m "made some changes"
回到 master 主分支
git checkout master
合并到主分支
git merge new_sub
git branch 可显示所有的分支
删除分支
git branch -d new_sub 
      作为开源代码库的Git与GitHub,两者的未来和前景也必定春光无限。据统计,全球最大的社交编程及代码托管网站GitHub以其开创性的新型软件开发方式并且能高效利用有限的资源通过自力更生实现公司盈利和300%的年收入增长成功的吸引知名风投机构Andreessen Horowitz一亿美金的投资。新的资金注入将帮助GitHub平台得到进一步的改进和扩展。
      最后,希望广大学者可以从Git与GitHub开源代码库中得到有益的帮助。
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!