首页 > 其他分享 >源代码管理工具--GitHub

源代码管理工具--GitHub

时间:2023-05-26 16:55:05浏览次数:53  
标签:GitHub 项目 -- 仓库 开源 Git 搜索 源代码

一.GitHub简介

Github是一个基于Git的代码托管平台,主要为开发者提供基于Git仓库的版本托管服务,并提供一个web界面。其由Chris Wanstrath, PJ Hyett 与Tom Preston-Werner三位开发者在2008年4月创办。 总部位于美国旧金山。

使用上,付费用户可以建私人仓库,免费用户只能使用公共仓库,也就是代码要公开。对学生有一定的福利,如果你是学生的话,可以用学校分配的邮箱在官网进行申请,申请通过之后,也能够创建私有项目。

 

二.GitHub优势

  1. 最大的特征:"面向人"。

GitHub 与以往的仓库管理服务最大的不同,就在于它以人为中心,以往的仓库托管都是以项目为中心,每个项目就是一个信息封闭的世界。

  1. 学习优秀的开源项目

GitHub是”世界最大的同性交友网站“,世界上最大的开源社区,因为开源社区的贡献,开发才越来越容易,越来越快速。使用开源项目,学习他们优秀的设计思想、实现方式,是最好的学习资料,也是一份提升自己能力的绝佳方式!

  1. 多人协作

git 版本控制和远程协作功能,在 GitHub 中,可以发起一个项目,比如翻译一份不错的英文文档,发布后,感兴趣的人可以参与到项目中,利用业余时间对项目做贡献,且可以互相审核、合并,集思广益。

  1. 搭建一个博客网站

GitHub Pages提供静态网页托管服务,它直接从 GitHub 上的仓库获取 HTML、CSS 和 JavaScript文件,然后构建并发布网站。 您可以在 GitHub Pages 示例集合中查看 GitHub Pages 站点的示例。GitHub 提供免费的github.io子域,也支持自定义域名。

 

三.GitHub使用

  1. 认识GitHub

这里我们跳过对GitHub的注册登录介绍,因为GitHub网站为纯英文,首先我们需要认识一些词汇概念。

此外还有一些常见词汇:

repository - 仓库(缩记Repo):可以把仓库理解为一个文件夹,里面存放项目 中的所有文件,并记录着每个文件的修改记录。GitHub上仓库 分为public和private。

fork - 复刻:fork - 复刻/分叉,是其他用户创建的仓库副本。副本的修 改,不会影响原始上游仓库。当然可以通过PR(拉取请求),将修 改同步到原始仓库。

clone - 克隆:clone 复制/下载的意思。是指将远程仓库复制到本地电脑 的操作。

pull - 拉取:拉取是指同步远程仓库到本地的操作。比如有人修改了远 程仓库文件,我们通过pull操作,将修改同步到本地,以使其保 持最新。

push - 推送:推送是指将提交的修改发送到 GitHub.com 上的远程仓库。 例如,如果您在本地更改内容,便可推送这些修改,让其他人能 够看到。

Star - 星星,就是给项目点赞,表示项目的代码或方案受欢迎程度,但 在 GitHub 上点赞数很难,一个项目能够获得100个 star 就算 很不容易了。

Main- 默认开发分支。每当您创建 Git 仓库时,都会创建名为 main 的 分支,它将成为活动分支。在大多数情况下,它包含本地开发内 容,但这完全是就惯例而言,并不是必需的。

2.搜索项目

搜索很容易,但是搜索到想要的内容不太容易。

直接搜索所需的项目框架,会显示非常多的开源项目,很难找到感兴趣和适合的开源项目,准确性很低。

所以下面我以技巧为主的介绍一些稍微精确一点的搜索方法。

(1)按照 name 搜索

搜索项目名里包含×××的项目:in:name ×××

这一部可以帮我们过滤掉一部分相关性不大的项目,我们还可以继续通过添加限制,来进一步筛选过滤,如:

约束项目的star数大于100+:in: name ××× star: >100

约束项目的fork数大于50+:in: name ××× fork: >50

加入限制之后,往往能让搜索结果瞬间精准很多。

 

(2)按照 README 来搜索

搜索 README.md 里面包含××× 的项目:in : readme×××

也可如(1)中添加限制,如:in:readme ××× star:>100

 

(3)按照 description 搜索

假设目前学习的某个项目,搜索项目描述(description)里面包含这个项

目:in:description ×××

也可以限制编程语言:

In : description ××× language : Java

还可以限制项目的更新时间:

In : description××× language: Java  pushed:>2023-05-01

3.创建一个公开仓库

(1)右上角的➕/New repository

填写如下内容:

Repository name:填写仓库名称

Description:填写仓库说明

Public、Private:公开仓库Public内所有内容会被公开,选择Private则为创建非公开仓库。

Initialize this repository with a README:用README文件初始化仓库,打上勾以后让用户可以立刻clone这个仓库。如果想向 GitHub添加手中已有的Git仓库,建议不要勾选,直接手动push。

Add .gitignore:这个下拉菜单很方便,通过它可以在舒适化时,自动生成Add .gitignore文件(这个文件用来描述Git仓库中不需要管理的文件与目录)。

Add a license:Add a license菜单可以选择要添加的许可协议文件。如果这个仓库中包含的代码已经确定了许可协议,那么请在这里进行选择。

都填充和选择完后,点击Create repository,完成仓库的创建。

(2)链接仓库

·  新建仓库的链接:github.com/用户名/仓库名

·  README.md:初始化时就已经生成,一般用来描述本仓库所包含软件的 概要、使用流程、许可协议等信息。

·  GitHub Flavored Markdown:GitHub上的文档都可以用Markdown语法编 写,而GitHub Flavored Markdown是GitHub在Markdown语法的基础上 扩充而来的。

(3)公开代码

clone已有仓库。打开需要拷贝的仓库链接,点击右侧按钮:Clone or download,获得一个git地址。如下图:

 这里会要求输入GitHub上设置的公开密钥的密码,认证后,仓库便会被clone到仓库名后的目录中,将想要公开的代码提交至这个仓库再push到GitHub的仓库中,代码便会被公开。

 

四.GitHub与Git的联系和区别

  1. 关于Git

Git是分布式管理的版本控制器。

Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

Git 像是把数据看作是对小型文件系统的一组快照。 每次你提交更新,或在 Git 中保存项目状态时,它主要对当时的全部文件制作一个快照并保存这个快照的索引。 为了高效,如果文件没有修改,Git 不再重新存储该文件,而是只保留一个链接指向之前存储的文件。 Git 对待数据更像是一个快照流。

Git每一个终端都是一个仓库,客户端并不只提取最新版本的文件快照,而是把原始的代码仓库完整地镜像下来。每一次的提取操作,实际上都是一次对代码仓库的完整备份。

  1. GitHub的联系和区别

Git:一款免费、开源的分布式版本控制系统。开发者将源代码存入“Git仓库” 的资料库中

 

GitHub:主要提供基于 git 的版本托管服务

 

关联: GitHub上公开的软件源码是由Git进行管理,GitHub 上托管的所有 项目代码都是基于 Git 来进行版本控制的,所以 Git 只是 GitHub 上用来管理项目的一个工具而已。

 

五.总结

GitHub 基本是全球最大的开源社区了,我们可以把它当做一份庞大的学习资料。学习使用GitHub,可以让我们接触到最新的技术知识,也可以让我们找到很多感兴趣的项目,锻炼自己的的项目编程能力,提升我们的技术。

更早的接触GitHub,不管是毕业找工作,还是做科研,都有十分重要的意义。

   

标签:GitHub,项目,--,仓库,开源,Git,搜索,源代码
From: https://www.cnblogs.com/nikonikoni/p/17435229.html

相关文章

  • xml,DTD,
               ......
  • mybatis-plus
    mybatis-plus是一款Mybatis增强工具,用于简化开发,提高效率。下文使用缩写mp来简化表示mybatis-plus,本文主要介绍mp搭配SpringBoot的使用。注:本文使用的mp版本是当前最新的3.4.2,早期版本的差异请自行查阅文档官方网站:baomidou.com/快速入门创建一个SpringBoot项目导入依赖......
  • 9ke0 解决利润中心分摊问题
    今天遇到一个PM工单没有利润中心的问题,由于利润中心建立的时间比PM工单晚。虽然有办法可以把这个利润中心弄上去,但是可能存在风险处于这个原因就只有糟糕的让人取消单子重新来的操作后续老外说他可以用9KE0这个TCODE来手工调整利润中心余额。 ......
  • 串口通信UART协议
    目录前言通信基本概念串口通信基础串口标准通信协议串口内部结构图串口寄存器串行口控制寄存器SCON电源控制寄存器PCONSBUF实验代码部分收获前言在这个广泛应用和计算机网络技术普及的时代,单片机的通信功能愈发重要。在WIFI、蓝牙、GPS、GSM/GPRS等应用的控制无不体现串口通信的......
  • Jmeter函数助手27-urlencode
    urlencode函数用于将字符串进行application/x-www-form-urlencoded编码格式化。StringtoencodeinURLencodedchars:填入字符 1、urlencode函数将字符进行编码格式化,而urldecode函数则是将编码进行解码,两者功能刚好相反。${__urlencode(value="hello"+"word"&name="名......
  • Heap 0x03
    heap0x03,写写uaf,写完准备刷堆题咯☠️UAF(USE-AFTER-FREE)早就听说过这个漏洞的名,今天......
  • windows设置jar包开机自启
    @echooff@REM------------根据端口关闭java服务------------@REM有多少服务关闭多少端口setport1=9081for/f"tokens=1-5"%%iin('netstat-ano^|findstr":%port1%"')dotaskkill/f/pid%%m&setport1=8082for/f"tokens=1-5"%%iin(......
  • docker 快速部署 Jenkins
    version:'3'services:jenkins:image:jenkins/jenkinscontainer_name:myjenkinsrestart:alwayshostname:myjenkins_hostports:-18181:8080#界面端口-18182:50000#apivolumes:-./jenkins_mount:/var......
  • Django——AJAX
    AJAX(AsynchronousJavascriptAndXML)翻译成中文就是“异步的Javascript和XML”。AJAX不是新的编程语言,而是一种使用现有标准的新方法。使用Javascript语言与服务器进行异步交互的,并进行局部刷新。传输的数据为XML(当然,传输的数据不只是XML)AJAX最大的优点是在不重新加载整个......
  • Python - matplotlib 不显示中文 && findfont: Font family ['simsun'] not found
    一.发现问题pythonmatplotlib.plt使用plt.title写标题时,标题显示为方框,无法正常显示中文,遂开始修复之旅。二.尝试解决查询网上大神给出的解决方案是添加全局字体配置:plt.rcParams['font.sans-serif']=['simsun']如果添加后运行代码无findfont:Fontfamily['simsu......