GitHub基本概念

news2024/12/22 19:32:35

创建日期: 2018-09-22 09:50:06

Git & GitHub

Git是一个版本控制软件:

读作[gɪt] ,拼音读作gē yì te

Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.

GitHub是一个网站:

读作[gɪt hʌb] ,拼音读作gē yì te hà bo

GitHub is a code hosting platform for version control and collaboration. It lets you and others work together on projects from anywhere.

通常自己一个人开发时使用Git有助于对代码版本进行控制,返回到之前任意时间点,能够合并多个分支流,解决或查看冲突。假如有协作开发作用更大。

而使用GitHub不仅能够用来存储Git库,其还会提供以下操作:

  • 文档需求:使用提出问题(issues),可以提出新的功能需求,记录缺陷,从而让团队进行开发
  • 独立分支流记录:使用分支(branches)和拉请求(pull requests),可以在不同的分支或功能下进行合作。
  • 评估工作进展:通过查看拉请求(pull requests)列表,可以查看目前工作状态下的所有不同功能,通过单击列出的任何一个拉请求命令,可以看到最新变化以及所有关于该动的讨论。
  • 看到团队的进展:通过使用Insights,可以看到团队的工作进展和脉冲(pulse)。

关键概念/术语

由于目前GitHub还是英文的,所以刚开始学习时不是很明白其中的某些概念,可能会觉得有点不明所以,经过一段时间的摸索,特整理如下:

repository(仓库)

单数,a repository;复数,repositories。概念:

a place, building, or receptacle where things are or may be stored.

相当于一个项目(Project)文件夹,仓库名也就是项目文件夹名称,可以在里面存放代码,各种和项目有关的文档等。

A Demo GitHub repo

watch(关注)

长期关注某个项目的进展,设置在某些情况下发送提醒(到邮箱)。

star(收藏)

觉得某个项目不错,收藏一下,给个小星星,方便以后查看,同时也是对项目开发者的赞赏。

fork(分叉)

有时候我没有直接改变某个项目的许可,或者我想参与一个你不知道的人或者团队的开源项目,就可以克隆,修改,并使用拉请求的方式将其提交到最初的项目中。

issue(提出问题)

用来讨论功能/需求,跟踪缺陷,或者两者兼备。比如我发现某个项目在PC上没问题,但移植到手机上就出现了位置的错误,就可以开一个issue来记录错误的过程。

pull request(拉请求)

原先拉请求是用来请求别人复查自己已经完成的工作,并将它们合并到主分支上。现在,拉请求常用在一个流程的早期阶段,可以讨论可能的功能。

clone(克隆)

将项目库复制到本地。例如我下载一个项目的副本,在本地将其中的某个bug修复,然后再提交回GitHub。

wiki(维基文档记录)

当Readme比较长了,可以使用wiki进行文档记录,各个章节页面用简单的链接关系相联系。(通常我看好像没多少中国开发者选择使用wiki,有的readme相当长)。

commit(提交)

将一个或者多个文件的修改保存到Git历史记录中,都会创建一个新的提交。

branch(分支)

  • 主分支(master branch)
  • 功能分支(feature branch)

merge(合并)

将一个分支的全部工作合并到另一个分支,GitHub会在合并前检查是否有冲突并给出修改意见。

release(发布)

到了一定阶段,项目已经差不多了,就可以新建release,版本x.xx,来发布正式版供别人打包下载。

GitHub学习资源

  • 初级:https://services.github.com/
  • 高级:https://developer.github.com/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/580005.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

STM32之温湿度LCD显示并上传服务器

目录 项目需求 项目框图 硬件清单 LCD1602介绍及实战 硬件接线 引脚封装 代码实现 DHT11介绍及实战 硬件接线 引脚封装 代码实现 项目设计及实现 项目设计 项目实现 项目需求 使用温湿度传感器模块( DHT11 )获取温度及湿度&#xff0c…

推荐计算机领域的几本入门书籍

人工智能入门: 人工智能:现代方法(第4版)揭示AI与chatgpt的奥秘,详解人工智能的发展与未来! 推荐理由:系统性总结人工智能的方方面面,国际人工智能领域专家斯图尔特罗素撰写人工智能…

YOLO-NAS对象检测算法再一次颠覆YOLO系列算法——已超越YOLOv8

对象检测彻底改变了机器感知和解释人类世界的方式。这是计算机视觉中一项特别关键的任务,使机器能够识别和定位图像或视频中的物体。如自动驾驶汽车、面部识别系统等。推动对象检测进步的一个关键因素是发明了神经网络架构。强大的神经网络推动了对象检测的进步,增强了计算机…

Meta Learning

Meta Learning(元学习)是一种机器学习技术,它的核心思想是学习如何学习。 Meta Learning的目标是从以前的学习经验中学习到通用的学习策略和模式,以便在新的任务上快速适应和学习。 Meta Learning的核心思想是将学习任务视为元任…

Vivado下阻塞赋值和非阻塞赋值的对比

Verilog 基础知识 中已经介绍过了阻塞赋值和非阻塞赋值的区别,下面通过一个在Vivado中的简单例子来直观的反映两者的不同。 首先给出设计源代码如下。 module block(a,b,c,clk,x);input x;input clk;output reg a,b,c;always(posedge clk) begina x; //阻塞赋值…

零钱兑换,凑零钱问题,从暴力递归到动态规划(java)

凑零钱问题,从暴力递归到动态规划 leetcode 322 题 零钱兑换暴力递归(这个会超时,leetcode 跑不过去)递归缓存 leetcode 322 题 零钱兑换 322 零钱兑换 - 可以打开链接测试 给你一个整数数组 coins ,表示不同面额的硬…

[MAUI]模仿Chrome下拉标签页的交互实现

文章目录 创建粘滞效果的圆控件贝塞尔曲线绘制圆创建控件创建形变可控形变形变边界形变动画 创建手势控件创建页面布局更新拖拽物位置其它细节 项目地址 今天来说说怎样在 .NET MAUI 中制作一个灵动的类标签页控件,这类控件常用于页面中多个子页面的导航功能。 比如…

《数据库应用系统实践》------ 公园游客日流量管理系统

系列文章 《数据库应用系统实践》------ 公园游客日流量管理系统 文章目录 系列文章一、需求分析1、系统背景2、 系统功能结构(需包含功能结构框图和模块说明)3.系统功能简介 二、概念模型设计1.基本要素(符号介绍说明…

【阅读笔记】概率预测之MQ-RNN(含Pytorch代码实现)

本文作为自己阅读论文后的总结和思考,不涉及论文翻译和模型解读,适合大家阅读完论文后交流想法,关于论文翻译可以查看参考文献。论文地址:https://arxiv.org/abs/1711.11053 MQ-RNN 一. 全文总结二. 研究方法三. 结论四. 创新点五…

谷歌推出免费AI编程神器Colab,欲将Copilot拉下神坛

在如今的AI编码工具领域,微软旗下的Github Copilot可以算得上是一家独大,而作为老对手的谷歌显然并不愿屈服于此。 近日,谷歌通过其官网高调发文宣布,将为研发工具Google Colaboratory(Colab)加入全新的AI…

DAY 68 redis高可用的主从复制、哨兵、cluster集群

Redis 高可用 什么是高可用 在web服务器中,高可用是指服务器可以正常访问的时间,衡量的标准是在多长时间内可以提供正常服务(99.9%、99.99%、99.999%等等)。 但是在Redis语境中,高可用的含义似乎要宽泛一些,除了保证提供正常服…

RT-Thread memheap 开启多块 SRAM的方法

验证环境 NUCLEO-L476RG 开发板,板载 STM32L476RGT6(96K SARM1 32K SRAM2) Win10 64 位 Keil MDK 5.36 RT-Thread 5.0.1 版本(2023-05-28 master 主线) 功能描述 最近在研究 RT-Thread 内存的管理,熟…

Linux内核源码分析 2:Linux内核版本号和源码目录结构

一、Linux的版本 1. 稳定版和开发版 Linux内核主要分为两种版本: 稳定版(长期支持版):稳定版的内核具有工业级的强度,可以广泛地应用和部署。而每一代新推出的稳定版内核大部分都只是修正了一些Bug或是加入了一些新的…

【网络协议详解】——FTP系统协议(学习笔记)

目录 🕒 1. 概述🕒 2. 工作原理🕘 2.1 两个连接 🕒 3. 相关命令与处理🕘 3.1 接入命令🕘 3.2 文件管理命令🕘 3.3 数据格式化命令🕘 3.4 端口定义命令🕘 3.5 文件传输命令…

计算机组成原理 期末复习笔记

🌱博客主页:大寄一场. 😘博客制作不易欢迎各位👍点赞⭐收藏➕关注 目录 前言 第一章 计算机系统概论计算机软件的发展 计算机硬件的基本组成 计算机系统的层次结构 计算机的性能指标 第二章 数据表示 与 第三章 数据运算与运…

Go语言实现JDBC

Go语言操作数据库 Go语言提供了关于数据库的操作,包下有sql/driver 该包用来定义操作数据库的接口,这保证了无论使用哪种数据库,操作方式都是相同的; 准备工作: 下载驱动 需要在代码所在文件夹下执行相应的命令 go get github.com/go-sql-driver/mys…

DAY 69 rsync远程同步

rsync介绍 rsync简介 rsync(Remote Sync,远程同步)是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,并保持链接和权限,且采用优化的同步算法,传输前…

超超超级详细的画图以及代码分析各种排序的实现!

各种排序的实现 排序的概念直接插入排序基本思想实现直接插入排序的特性总结 希尔排序基本思想实现希尔排序的特性总结 简单选择排序基本思想实现直接选择排序的特性总结 堆排序实现堆排序的特性总结 冒泡排序基本思想实现冒泡排序的特性总结 快速排序基本思想hoare版本挖坑法前…

JDBC测试

JDBC是什么? JDBC是一套接口,各大厂商来实现这套接口,进行数据库连接操作 比如Mysql驱动,Oracle驱动,sqlServer驱动,高斯驱动 以Mysql为例: JDBC编程六步 第一步:注册驱动 第二步:获取连接 第三步:获取数据库操作对象 第…

为什么不用Go开发操作系统?

操作系统 (OS) 是计算机系统的心脏和灵魂,它管理着计算机的硬件和软件资源,并为用户提供与计算机交互的方式。传统上,C 和 Assembly 等语言因其低开销和 “接近机器码” 的特性而被用于开发操作系统。 但诸如 Go 等高级语言的兴起引入了一些…