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

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

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

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

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

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

随身wifi能不能买?怎么买不踩坑?随身wifi哪个品牌最好用?热销榜第一的格行随身wifi真的好用吗?对比其他品牌有何优势?

你是否遇到过这些问题&#xff1a;出差办公酒店信号差&#xff0c;领导信息接收不及时&#xff01;外出旅游&#xff0c;手机流量不够用&#xff01;高速导航&#xff0c;信号差导航延迟等等...所以更多的人选择随身wifi&#xff0c;但是市面那么多品牌&#xff0c;随身wifi到底…

AWS基础之Region/AZ/DC概念

从云厂商提供的服务物理地域上来划分&#xff0c;范围从大到小依次是Region-Available Zone-Data Center。 Region(区域)&#xff1a;区域与区域之间的距离大概是几百公里或者几千公里。&#xff08;可以理解为&#xff1a;中国和美国在不同的区域&#xff09; Available Zon…

08 必会框架 - Spring全家桶

本课时主要介绍 Java 中常用的应用框架&#xff0c;重点讲解如下三部分内容。 Spring 框架中的主要知识点&#xff1b; NIO 框架 Netty 以及基于 Netty 实现的主流 RPC 框架 Motan、Dubbo 和 gRPC&#xff1b; ORM 框架 MyBatis。 常用框架汇总 先来看常用框架的知识点汇总…

免费https证书签发

在浏览网页时&#xff0c;最常见的是http访问&#xff0c;但是也有一部分网站前缀是https&#xff0c;且浏览器网址栏会出现“安全”字样&#xff0c;或是绿色小锁的标志。 这个是实现了网站https访问的情况&#xff0c;那为什么https就安全&#xff0c;有绿色安全的标志呢&am…

高清SDI串行数字接口采集卡与传输编码器

随着科技的快速发展&#xff0c;我们正处于一个数字化、信息化的时代&#xff0c;各式各样的设备正成为人们工作和生活中必不可少的伙伴。今天&#xff0c;我要向大家介绍的是一款具有革命性意义的视频采集卡——LCC262。这款由灵卡技术团队精心打造的产品&#xff0c;集合了多…

大模型应用的最佳实践Chains, Chain代码剖析、llmchain示例

各种chain的介绍 串联式编排调用链:SequentialChain 流水线 胶水代码逻辑处理具备编排逻辑 串行 one by one的调用上一个chain的输出 作为 下一个chain的输入 超长文本的转换 Transform Chain pdf文件处理提供了套壳的能力 将python处理字符串的能力 套用进来 完成数据的格式化…

二、服务器配置修改

二、服务器配置修改 1 防火墙相关配置 systemctl status firewalld systemctl enable firewalld systemctl start firewalld firewall-cmd --reload firewall-cmd --list-all# 开启端口 firewall-cmd --zonepublic --add-port6030-6060/tcp --permanent firewall-cmd --zonep…

自动驾驶中的神经辐射场:综述

24年4月清华大学论文“Neural Radiance Field in Autonomous Driving: A Survey”。 神经辐射场&#xff08;NeRF&#xff09;由于其固有的优势&#xff0c;特别是其隐式表示和新视图合成能力&#xff0c;引起了学术界和工业界的广泛关注。 随着深度学习的快速发展&#xff0c…

Linux的命令(第二篇)

昨天学习到了第17个命令到 rm 命令&#xff08;作用删除目录和文件&#xff09;&#xff0c;今天继续往下里面了解其他命令以及格式、选项&#xff1a; &#xff08;17&#xff09;wc命令&#xff08;此wc非wc&#xff09; 作用&#xff1a;统计行数、单词数、字符分数。 格…

Leetcode—100296. 两个字符串的排列差【简单】

2024每日刷题&#xff08;135&#xff09; Leetcode—100296. 两个字符串的排列差 实现代码 class Solution { public:int findPermutationDifference(string s, string t) {int maps[26];int mapt[26];for(int i 0; i < s.size(); i) {int idxs s[i] - a;int idxt t[i…

由于安全设置错误,远程桌面连接失败怎么办?

问题&#xff1a;远程桌面安全设置错误&#xff1f; “我是一名IT经理&#xff0c;需要经常使用远程桌面连接到办公室的电脑。近期&#xff0c;我在使用远程桌面时&#xff0c;远程桌面提示‘由于安全设置错误&#xff0c;客户端无法连接到远程计算机。’我不清楚是什么原因所…

GPT-4o: 从最难的“大海捞针”基准看起

大模型技术论文不断&#xff0c;每个月总会新增上千篇。本专栏精选论文重点解读&#xff0c;主题还是围绕着行业实践和工程量产。若在阅读过程中有些知识点存在盲区&#xff0c;可以回到如何优雅的谈论大模型重新阅读。另外斯坦福2024人工智能报告解读为通识性读物。若对于如果…