Github项目管理——仓库概述(一)

 个人名片:

🎓作者简介:嵌入式领域优质创作者
🌐个人主页:妄北y

📞个人QQ:2061314755

💌个人邮箱:[mailto:2061314755@qq.com]
📱个人微信:Vir2025WBY
🖋️本文为妄北y原创佳作,独家首发于CSDN🎊🎊🎊
💡座右铭:改造世界固然伟大,但改造自我更为可贵。

专栏导航:

妄北y系列专栏导航:

物联网嵌入式开发项目:大学期间的毕业设计,课程设计,大创项目,各种竞赛项目,全面覆盖了需求分析、方案设计、实施与调试、成果展示以及总结反思等关键环节。📚💼💡

QT基础入门学习:对QT的基础图形化页面设计进行了一个简单的学习与认识,利用QT的基础知识进行了翻金币小游戏的制作。🛠️🔧💭

Linux基础编程:初步认识什么是Linux,为什么学Linux,安装环境,进行基础命令的学习,入门级的shell编程。🍻🎉🖥️

Linux应用开发基础开发:分享Linux的基本概念、命令行操作、文件系统、用户和权限管理等,网络编程相关知识,TCP/IP 协议、套接字(Socket)编程等,可以实现网络通信功能。💐📝💡

Linux驱动开发:Linux驱动开发是Linux系统不可或缺的组成部分,它专注于编写特殊的程序——驱动程序。这些程序承载着硬件设备的详细信息,并扮演着操作系统与硬件间沟通的桥梁角色。驱动开发的核心使命在于确保硬件设备在Linux系统上顺畅运作,同时实现与操作系统的无缝集成,为用户带来流畅稳定的体验。🚀🔧💻

Linux项目开发:Linux基础知识的实践,做项目是最锻炼能力的一个学习方法,这里我们会学习到一些简单基础的项目开发与应用,而且都是毕业设计级别的哦。🤸🌱🚀

非常期待与您一同在这个广阔的互联网天地里,携手探索知识的海洋,互相学习,共同进步。🌐💫🌱 熠熠星光,照亮我们的成长之路

✨✨ 欢迎订阅本专栏,对专栏内容任何问题都可以随时联系博主,共同书写属于我们的精彩篇章!✨✨

文章介绍:

📚本篇文章将深入剖析Github项目管理学习的精髓与奥秘,与您一同分享相关知识!🎉🎉🎉

若您觉得文章尚可入目,期待您能慷慨地送上点赞、收藏与分享的三连支持!您的每一份鼓励,都是我创作路上源源不断的动力。让我们携手并进,共同奔跑,期待在顶峰相见的那一天,共庆辉煌!🚀🚀🚀

🙏衷心感谢大家的点赞👍、收藏⭐和评论✍️,您的支持是我前进的动力!

目录:

目录:

一、版本控制:

1.1 本地版本控制系统:

1.2 集中化的版本控制系统(Centralized Version Control Systems, CVCS):

1.3 分布式版本控制系统(Distributed Version Control Systems, DVCS):

二、GIT介绍

2.1 GIT 历史

 2.2 GIT特点

2.3 工作目录,暂存区,和本地仓库三者之间关系

 ​编辑 

三、GIT的安装与配置

3.1 安装GIT

3.2 查看GIT是否安装

3.3 配置GIT

3.4 初始化GIT仓库


一、版本控制:

        版本控制是一种系统,用于管理文件(尤其是代码文件)的更改历史,以便你能够回顾特定版本的文件。它对于任何进行文本文件更改的人来说都是非常重要的工具,尤其是对于软件开发者来说。

        版本控制是软件开发和文档管理中的一个关键概念,它涉及到跟踪和管理文件的变更历史。以下是版本控制系统的三种主要类型:

1.1 本地版本控制系统:

        这种系统通常采用简单的数据库来记录文件的所有变更。例如,RCS(Revision Control System)就是一种本地版本控制系统,它通过在硬盘上保存补丁集(即文件修订前后的差异)来工作。

1.2 集中化的版本控制系统(Centralized Version Control Systems, CVCS):

        这类系统如CVS(Concurrent Versions System)、Subversion(SVN)和Perforce,它们有一个单一的集中服务器来存储所有文件的版本,而多个客户端则从这个中心仓库检出文件。这种模式提供了更好的项目监控和控制,但缺点是如果中央服务器出现故障,则无法进行历史版本访问和协作。

1.3 分布式版本控制系统(Distributed Version Control Systems, DVCS):

        在这类系统中,如Git、Mercurial和Bazaar,每个参与者不仅从中央仓库检出文件,还会完整地复制一份仓库。这意味着即使没有网络连接,你也可以在本地进行提交、查看历史记录和创建分支等操作。当重新联网后,你可以将本地仓库的变更推送到远程仓库。这种分布式特性极大地提高了系统的容错性和灵活性。

版本控制系统的主要功能包括:

跟踪变更:记录谁、何时以及为什么对文件进行了更改。

版本历史:允许用户查看文件的旧版本,并比较不同版本之间的差异。

分支和合并:允许开发者创建独立的开发路径(分支),并在完成后将这些更改合并回主分支。

协作:允许多个开发者同时工作在同一个项目上,而不会相互干扰。

恢复:如果需要,可以将文件或整个项目恢复到之前的某个状态。

        版本控制系统是现代软件开发不可或缺的工具,它不仅提高了开发效率,还确保了代码质量和团队协作的顺畅。

二、GIT介绍

2.1 GIT 历史

1991 - 2002年:早期版本控制

  • Linux 内核项目最初使用的是一种非正式的版本控制方法,主要是通过 tarball 和 patches 的方式进行代码分发和合并。

2002 - 2005年:BitKeeper 的使用

  • 为了更有效地管理 Linux 内核的开发,Linux 社区开始使用 BitKeeper,这是一个分布式版本控制系统,它允许开发者们更高效地协作。

2005年:BitKeeper 的争议与 Git 的诞生

  • 2005年,由于一系列争议,BitKeeper 的免费使用权被收回。这促使 Linux 社区,尤其是 Linus Torvalds(Linux 的创始人)开始寻找或创建一个新的版本控制系统。
  • Linus Torvalds 决定自己开发一个新的版本控制系统,以满足 Linux 社区的需求。他在一周内设计了 Git 的原型,并在接下来的几个月里,与社区成员一起完善了 Git。

2005年以后:Git 的快速发展

  • Git 在2005年4月发布,很快就因其速度、数据完整性和对非线性开发的支持(通过成千上万个并行分支)而受到欢迎。
  • Git 的设计哲学强调性能、简单性、非线性开发的支持和完全的分布式。
  • Git 的开源性质和强大的社区支持使其迅速成为最受欢迎的版本控制系统之一。

2008年:GitHub 的成立

  • GitHub 是一个基于 Git 的代码托管平台,它于2008年成立。GitHub 提供了一个易于使用的界面,使得 Git 的使用更加普及,并促进了开源项目的发展。

至今:Git 的主导地位

  • 随着时间的推移,Git 已经成为最流行的版本控制系统,广泛应用于软件开发、文档管理和其他需要版本控制的领域。
  • Git 社区持续发展,不断有新的工具和插件被开发出来,以增强 Git 的功能和易用性。

 2.2 GIT特点

1. 近乎所有操作都是本地执行(离线操作)

  • Git 的大多数操作都在本地完成,这意味着你几乎不需要网络连接就可以进行提交、查看历史、创建分支等操作。这不仅提高了操作的速度,而且也使得工作在网络连接不稳定或没有网络的环境下成为可能。
  • 由于操作主要在本地进行,你可以随时进行代码的提交和版本控制,然后在有网络连接时再将更改推送到远端仓库。

2. 时刻保持数据完整性(SHA-1 哈希值)

  • Git 通过使用 SHA-1 哈希算法来确保代码历史的完整性和一致性。每次提交都会生成一个唯一的哈希值(称为“提交ID”),这个哈希值是基于文件的内容、提交时间、作者信息等生成的。
  • 这种机制使得更改历史几乎不可能被篡改或损坏,无论是意外还是故意的,因为哈希值的任何微小变化都会导致一个完全不同的提交ID。

3. 文件流转的三个工作区域

         (1)工作目录:这是你当前正在工作的文件的实际目录。它从Git仓库的一个版本中提取了文件的实际内容,放在你的文件系统中供你使用或修改。

        (2) 暂存区域(索引或暂存区):当你完成了对工作目录中文件的修改后,下一步是将这些更改添加到暂存区域。这个区域包含了下一次要提交的文件快照,实际上它是你下次提交时项目的状态。

        (3) 地仓库:完成以上步骤后,你可以执行提交操作,将暂存区域的更改永久记录到本地仓库的历史记录中。这个本地仓库包含了项目的所有历史版本,每个版本都通过一个独特的提交ID标。

2.3 工作目录,暂存区,和本地仓库三者之间关系

  1. 你在工作目录中修改文件。
  2. 你选择你想要的文件进行下一次提交,将这些更改添加到暂存区
  3. 你执行提交操作,将暂存区中的更改永久地记录到本地仓库的历史中。
  4. 最后,当你准备好与他人共享你的更改时,你可以将这些提交从你的本地仓库推送到远端仓库。

  

   

三、GIT的安装与配置

3.1 安装GIT

下载地址:https://git-scm.com/,选择自己电脑对应的版本
 

  

3.2 查看GIT是否安装

在命令行下执行   git --version

    

单击右键,查看是否有git bash 命令

  

3.3 配置GIT

        用于设置Git的全局用户名和电子邮件地址。这些信息将用于在提交的commit log中标识您的身份。(第一次使用的时候配置,后面就不需要配置了)

git config --global user.name "teduweb"            //(用户名)
git config --global user.email "web@tedu.com"      //(用户邮箱)

要查看Git配置信息,可以使用以下命令:

git config --list

这个命令将会列出所有当前Git配置的键值对,包括用户名称和电子邮件地址。如果想要查看全局配置,可以添加--global标志:

git config --global --list

将只显示全局配置信息,这些信息适用于系统中所有的Git仓库。如果要查看特定仓库的配置信息,需要在该仓库的目录下运行不带--global标志的命令。

另外,如果只想查看特定的配置项,例如用户名,可以运行:

git config user.name

或者,如果您想查看电子邮件配置:

git config user.email

请注意,如果在同一键下有多个配置(例如,局部和全局),git config --list会列出所有的配置,而git config <key>将仅显示找到的第一个配置值。

3.4 初始化GIT仓库

使用命令进行初始化,会生成一个.git的隐藏文件,用来记录所有的版本

git init

命令执行后,会出现一个半透明的文件

 如果遇到看不到的情况,需要将隐藏文件进行勾选

📝大佬觉得本文有所裨益,不妨轻点一下👍给予鼓励吧!

❤️❤️❤️本人虽努力,但能力尚浅,若有不足之处,恳请各位大佬不吝赐教,您的批评指正将是我进步的动力!😊😊😊

💖💖💖若您认为此篇文章对您有所帮助,烦请点赞👍并收藏🌟,您的支持是我前行的最大动力!

🚀🚀🚀任务在默默中完成,价值在悄然间提升。让我们携手共进,一起加油,迎接更美好的未来!🌈🌈🌈

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java面试题:ConcurrentHashMap

ConcurrentHashMap 一种线程安全的高效Map集合 jdk1.7之前 底层采用分段的数组链表实现 一个不可扩容的数组:segment[] 数组中的每个元素都对应一个HashEntry数组用以存放数据 当放入数据时,根据key的哈希值找到对应的segment数组下标 找到下标后就会添加一个reentrantlo…

linux内核:持续更新

内核源码树 COPYING文件是内核许可证&#xff0c;CREDITS是开发了很多内核代码的开发者列表&#xff0c;MAINTAINERS是维护者列表&#xff0c;它们负责维护内核子系统和驱动程序&#xff0c;makefile是基本内核的makefile 向内核插入驱动模块 命令&#xff1a;insmod xxx.ko …

汇昌联信:拼多多网店该如何开店?

拼多多网店的开设流程并不复杂&#xff0c;但需要细心和耐心去完成每一步。下面将详细阐述如何开设一家拼多多网店。 一、选择商品与定位 开设拼多多网店的第一步是确定你要销售的商品类型&#xff0c;这决定了你的目标客户群体和市场定位。你需要了解这些商品的市场需求、竞争…

日常工作必备!后台网优人必用的办公软件盘点

在后台网优日常工作时&#xff0c;常常会用到一些工作软件。它们可以大大提高网优工作效率&#xff0c;让网优人轻轻松松工作&#xff0c;快快乐乐摸鱼&#xff0c;早早下班&#xff01; 后台网优工程师们常用的办公软件有哪些&#xff1f;让我们一起来看看 一、GGMap网优利器 …

ES扩缩容

ES扩容 1.1 页面扩容ES1 1.2 拷贝插件及ssl文件 JSON [ec_admin@kde-offline3 ~]$ sudo rsync -avP /usr/kde_ec/2.3.6.6-1/elasticsearch1/plugins/* kde-offline6:/usr/kde_ec/2.3.6.6-1/elasticsearch1/plugins/ ;echo $? [ec_admin@kde-offline3 ~]$ sudo rsync -avP /us…

Docker常用镜像安装

1. mysql 1.1 安装 获取镜像 docker pull mysql:8.0.30创建文件挂载目录 创建容器并运行 docker run -p 3306:3306 --name mysql8 \ -v /home/docker/mysql8/log:/var/log/mysql \ -v /home/docker/mysql8/data:/var/lib/mysql \ -v /home/docker/mysql8/mysql-files:/va…

专访安克创新CEO阳萌:仿生算法与存算一体芯片的兴起

在这篇博客中&#xff0c;我们将探讨人工智能的未来发展方向&#xff0c;特别是围绕大模型、存算一体芯片以及仿生算法的讨论。通过对安克创新CEO阳萌的专访内容进行分析&#xff0c;我们将尝试解答一些关于AI发展的关键问题&#xff0c;并对未来的技术趋势进行预测。 引言 …

《四》系统模块整体功能关联与实现

在上一篇里&#xff0c;我们完成了动作的创建&#xff0c;那么这一次&#xff0c;我们把它加载到界面上&#xff0c;把需要是实现的动作都加上。 MyWord::MyWord(QWidget *parent): QMainWindow(parent) {mdiAreanew QMdiArea;mdiArea->setHorizontalScrollBarPolicy(Qt::S…

工厂数字化转型实现路线

工厂数字化转型实现路线 随着科技的飞速发展&#xff0c;数字化转型已成为当今社会的热门话题。尤其是对于工厂企业而言&#xff0c;数字化转型更是一种必然趋势。然而&#xff0c;在这个过程中&#xff0c;许多企业面临着种种困难和挑战。因此&#xff0c;探讨工厂企业数字化转…

NASA数据即——Aqua AIRS 第 3 级光谱出射长波辐射 (OLR) 月报 (AIRSIL3MSOLR)

Aqua AIRS Level 3 Spectral Outgoing Longwave Radiation (OLR) Monthly (AIRSIL3MSOLR) Aqua AIRS 第 3 级光谱出射长波辐射 (OLR) 月报 (AIRSIL3MSOLR) 简介 这个 L3 光谱出射长波辐射&#xff08;OLR&#xff09;是根据密歇根大学黄向磊开发的算法&#xff0c;利用 AIRS…

2024精选7个wordpress模板

通用多用途wordpress模板 中国红WordPress模板&#xff0c;适合服务行业企业建站的通用多用途wordpress模板。 WordPress是一款使用PHP语言开发的开源内容管理系统(CMS)&#xff0c;最初设计用于个人博客&#xff0c;但随着时间的发展&#xff0c;它已经演化成为一个功能强大的…

【算法优选】 动态规划之子数组、子串系列——壹

文章目录 &#x1f38b;前言&#x1f38b;最大子数组和&#x1f6a9;题目描述&#x1f6a9;算法思路&#x1f6a9;代码实现 &#x1f334;环形子数组的最大和&#x1f6a9;题目描述&#x1f6a9;算法思路&#xff1a;&#x1f6a9;代码实现 &#x1f332;乘积最大子数组&#x…

【PostgreSQL支持中文的全文检索插件(zhparser)】

PostgreSQL本身是支持全文检索的&#xff0c;提供两个数据类型&#xff08;tsvector,tsquery&#xff09;&#xff0c;并且通过动态检索自然语言文档的集合&#xff0c;定位到最匹配的查询结果。其内置的默认的分词解析器采用空格进行分词&#xff0c;但是因为中文的词语之间没…

想要安装Word、Excel、PowerPoint,但却找不到对应软件?

前言 前几天有小伙伴在找Word和Excel软件&#xff0c;但找了半天都没发现怎么安装。 这件事情其实很简单&#xff0c;那就是Word、Excel并不是单独的一个个软件&#xff0c;而是集成在MS Office套件里的。 咱们大部分人常用的办公软件大概是Word、Excel和PowerPoint这三个。还…

保研机试之【设备驱动程序】

B选项&#xff1a; 综上&#xff0c;我认为这道题选择D~

Host is not allowed to connect to this MySQL server解决方法

在阿里云服务器上安装了Mysql数据库&#xff0c;在阿里云上使用一切正常。我用navicat 去连接服务器时显示Host is not allowed to connect to this MySQL server。 ​ 看见这个错误&#xff0c;第一反应是是不是阿里云服务器防火墙没有配置mysq的出入站规则。去阿里云检查了一…

Day 46 139.单词拆分

单词拆分 给定一个非空字符串 s 和一个包含非空单词的列表 wordDict&#xff0c;判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。 说明&#xff1a; 拆分时可以重复使用字典中的单词。 你可以假设字典中没有重复的单词。 示例 1&#xff1a; 输入: s “leet…

Nginx配置Referer防盗链

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站&#xff0c;这篇文章男女通用&#xff0c;看懂了就去分享给你的码吧。 HTTP Referer是Hea…

ASP.NET银行大厅自助信息系统的开发与实现

摘 要 本毕业设计在基于银行业务大厅现有业务的基础上&#xff0c;针对自助银行的概念和其独有特点&#xff0c;通过.NETSQL技术&#xff0c;开发一个简单的银行大厅自助信息系统&#xff0c;完成一些自助银行的业务需求如帐户信息查询、帐户挂失、自助交费、留言、新闻查询…

惠普发布全新AI战略,重塑办公空间 引领企业智能化新浪潮

近日、全球知名科技公司惠普在北京隆重举办了以“用智能&#xff0c;开启无限可能”为主题的2024惠普商用AI战略暨AI PC新品发布会&#xff0c;此次盛会标志着惠普在人工智能领域迈出了重要一步&#xff0c;惠普紧跟时代步伐&#xff0c;推出了更高效、更安全、更灵活的AI PC产…