首页 > 其他分享 >Github介绍

Github介绍

时间:2024-05-28 22:23:42浏览次数:14  
标签:改动 GitHub 仓库 用户 介绍 Github git 分支

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

二、Github的功能
那么Github有什么功能呢?作为开源代码库以及版本控制系统,Github拥有超过900万开发者用户。GitHub可以托管各种git库,并提供一个web界面,但它与外国的SourceForge、GoogleCode或中国的coding的服务不同,GitHub的独特卖点在于从另外一个项目进行分支的简易性。为一个项目贡献代码非常简单:首先点击项目站点的“fork”的按钮,然后将代码检出并将修改加入到刚才分出的代码库中,最后通过内建的“pullrequest”机制向项目负责人申请代码合并。gitHub是一个面向开源及私有软件项目的托管平台,具有git代码仓库托管和基本的Web管理界面。除此之外还提供了文本渲染、在线文件编辑器、代码片段分享(Gist)等功能。GitHub系统由GitHub公司的开发者ChrisWanstrath开发。系统采用了RubyonRails和Erlang作为后端。GitHub的许可条款并不要求公有仓库满足自由软件标准。GitHub官网被称之为全球最大的社交编程及代码托管网站。
三、Github简明教程
(1)创建新仓库
创建新文件夹,打开,然后执行gitinit以创建新的git仓库。
(2)检出仓库
执行如下命令以创建一个本地仓库的克隆版本:gitclone/path/to/repository
如果是远端服务器上的仓库,用户的命令会是这个样子:gitcloneusername@host:/path/to/repository
(3)工作流
用户的本地仓库由git维护的三棵“树”组成。第一个是用户的工作目录,它持有实际文件;第二个是暂存区(Index),它像个缓存区域,临时保存用户的改动;最后是HEAD,它指向用户最后一次提交的结果。
(4)推送改动
用户的改动现在已经在本地仓库的HEAD中了。执行如下命令以将这些改动提交到远端仓库:
gitpushoriginmaster
可以把master换成用户想要推送的任何分支。如果用户还没有克隆现有仓库,并欲将用户的仓库连接到某个远程服务器,用户可以使用如下命令添加:
gitremoteaddorigin<server>
如此用户就能够将用户的改动推送到所添加的服务器上去了。
(5)分支
分支是用来将特性开发绝缘开来的。在用户创建仓库的时候,master是"默认的"分支。在其他分支上进行开发,完成后再将它们合并到主分支上。创建一个叫做"feature_x"的分支,并切换过去:
gitcheckout-bfeature_x
切换回主分支:
gitcheckoutmaster
再把新建的分支删掉:
gitbranch-dfeature_x
除非用户将分支推送到远端仓库,不然该分支就是不为他人所见的:
gitpushorigin<branch>
(6)更新与合并
要更新用户的本地仓库至最新改动,执行:
gitpull
以在用户的工作目录中获取(fetch)并合并(merge)远端的改动。
要合并其他分支到用户的当前分支(例如master),执行:
gitmerge<branch>
在这两种情况下,git都会尝试去自动合并改动。遗憾的是,这可能并非每次都成功,并可能出现冲突(conflicts)。这时候就需要用户修改这些文件来手动合并这些冲突(conflicts)。改完之后,用户需要执行如下命令以将它们标记为合并成功:
gitadd<filename>
在合并改动之前,用户可以使用如下命令预览差异:
gitdiff<source_branch><target_branch>
(7)替换本地改动
假如用户操作失误(当然,这最好永远不要发生),用户可以使用如下命令替换掉本地改动:
gitcheckout--<filename>
此命令会使用HEAD中的最新内容替换掉用户的工作目录中的文件。已添加到暂存区的改动以及新文件都不会受到影响。
假如用户想丢弃用户在本地的所有改动与提交,可以到服务器上获取最新的版本历史,并将用户本地主分支指向它:

gitfetchorigin
gitreset--hardorigin/master

(8)实用小贴士
内建的图形化git:gitk
彩色的git输出:gitconfigcolor.uitrue
显示历史记录时,每个提交的信息只显示一行:gitconfigformat.prettyoneline
交互式添加文件到暂存区:gitadd-i
四、如何高效利用GitHub
(1)了解GitHub风格
Gravatars的创始人、Jekyll作者、GitHub创始人,现任CTOTom在GitHub第一年学到的10大教训、创业学校演讲中谈到GitHub文化的方方面面。简单将这种风格总结为以下要点:
专注创作,高创意
运营良好与较高的内外满意度
高利润,较低的融资额或零融资
(2)学会向他人学习
GitHub本身建构在git之上,git成为必要工具,以下读物成为首选:
《git大白话入门,木有高深内容》
《为什么git胜过X…》
如果希望进一步深入,可以阅读已有中文翻译版的材料:
《progit》:GitHub公司传道士schacon所作,已翻译成多国语言,当然,有中文版。
《GitMagic》:已有志愿者翻译中文版。
同样,如果希望了解更多GitHub自身的知识,GitHub官方文档值得推荐:
《TheGitHubHep》
同时,可在以下地方学习:
GitHub上的代码库本身:尤其是:Explore、热门关注信息库两个栏目;
GitHub官方推荐:GitHub自身的官方博客与GitHub员工们的个人博客推荐的项目与开发者;
各类社交媒体上提到的的GitHub库:尤其是HackerNews上提到的GitHub库。
(3)代码帮用户找工作
NumEricR(非GitHub工作人员)基于GitHubPages功能做了一个简历生成器,使用极其简单,登陆网站GitHub简历生成器,填入用户的GitHub网站用户名即可。
因为GitHub上的代码无法造假,也容易通过用户关注的项目来了解知识面的宽度与深度。现在越来越多知名公司活跃在GitHub,发布开源库并招募各类人才,例如:Facebook、Twitter、Yahoo…
开始有了第三方网站提供基于GitHub的人才招聘服务,例如:
GitHire:通过它,可以找出用户所在地区的程序员。
Gitalytics.com:通过它,能评估某位程序员在GitHub、LinkedIn、StackOverflow、hackernews等多个网站的影响力。

标签:改动,GitHub,仓库,用户,介绍,Github,git,分支
From: https://www.cnblogs.com/yangkaili/p/18219044

相关文章

  • 源代码管理工具GitHub介绍
    一、Github简介GitHub是一个面向开源及私有软件项目的在线代码托管平台,因为只支持git作为唯一的版本库格式进行托管,故名GitHub。GitHub于2008年由TomPreston-Werner、ChrisWanstrath、PJHyett和ScottChacon创建,为开发者们提供了一个开发和版本控制的工具用于管理和共享代码......
  • Github——主流的源代码管理工具
    本文主要是介绍Github——主流的源代码管理工具的优点:分布式架构:o Github基于Git,Git本身采用分布式架构,每个开发者的本地仓库都包含完整的代码库和历史记录。这种设计使得开发者在本地就能快速进行各种操作,如提交、历史查询和分支合并,极大地提高了开发效率和灵活性。o 与中心......
  • 计算机网络基础-传输层介绍
    目录一、传输层介绍1、传输层概念2、传输层主要功能二、TCP协议1、TCP协议介绍2、TCP报文格式3、TCP的三次握手3.1、TCP三次握手流程图​3.2、TCP三次握手详解4、TCP的四次挥手   4.1、TCP四次挥手流程图   4.2、TCP四次挥手详解 5、TCP常见端口号以......
  • github有趣收录
    3、RunCat_for_windows:在Windows任务栏飞奔的“小猫”。这是一个用C#写的小工具,它会在Windows任务栏显示一只奔跑的小猫动画,CPU使用率越高它跑得越快。 LapisCV:开箱即用的简历模板。该项目提供了适用于Obsidian和Typora的简历模板,它基于Markdown格式、编辑方便、......
  • GitHub介绍
    GitHub介绍:GitHub使用Git存储库,并为开发人员提供工具,通过命令行功能、议题(线程讨论)、拉取请求、代码审查等等。通过GitHub流程等协作层,GitHub改变了软件的构建方式。GitHub将协作直接构建到开发过程中。工作组织到存储库中,开发人员可以在其中概述要求或方向。Git允许......
  • hellgithub
    great-tables:用Python制作漂亮的表格。这个Python库可以用来制作实用且美观的表格。它提供了一套表格组件,通过组合不同的表格部分,如表头、表尾、行标签(stub)以及跨列标签(spannerlabels)等,帮助Python开发者轻松制作漂亮的数据表格。 undetected-chromedriver:绕过反爬检测的......
  • 介绍图片懒加载的几种实现方法
    在JavaScript中,懒加载(LazyLoading)主要用于延迟加载资源,例如图片、视频、音频、脚本等,直到它们真正需要时才加载。这样可以提高页面的加载速度和性能。以下是几种常见的JavaScript懒加载实现方式:1.监听滚动事件通过监听滚动事件来实现图片懒加载是一种传统并且常见的方......
  • GitHub---程序员的圣地
    GitHub是一个基于web的版本控制和协作平台,主要用于存储、管理和分享开源代码和项目。它提供了基于Git的版本控制功能,使得多个开发者可以在同一个代码库中协同开发,并且能够轻松地跟踪代码的变化。同时,GitHub还提供了许多其他功能,如问题跟踪、代码审查、代码片段分享、自动化测试等......
  • Jakarta Bean Validation 规范介绍及其API使用以及与Spring Validator之间的关系
    JakartaBeanValidation规范1.BeanValidation的前世今生BeanValidation规范最早在OracleJavaEE下维护。2017年11月,Oracle将JavaEE移交给Eclipse基金会。2018年3月5日,Eclipse基金会宣布JavaEE(EnterpriseEdition)被更名为JakartaEE。随着JSR-303......
  • 源项目管理github介绍
    一、Git和GithubGit:一个免费、开源的版本控制软件Github:全球最大的社交编程及代码托管网站(https://github.com/)。Github可以托管各种git库,并提供一个web界面(用户名.github.io/仓库名)两者关系:Git是版本控制软件,Github是项目代码托管的平台,借助git来管理项目......