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

news2024/11/20 1:24:46

 个人名片:

🎓作者简介:嵌入式领域优质创作者
🌐个人主页:妄北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.coloradmin.cn/o/1675309.html

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

相关文章

【Cesium解读】Cesium中primitive/entity贴地

官方案例 Cesium Sandcastle Cesium Sandcastle scene.globe.depthTestAgainstTerrain true; True if primitives such as billboards, polylines, labels, etc. should be depth-tested against the terrain surface, or false if such primitives should always be draw…

7nm项目之模块实现——02 Placeopt分析

一、Log需要看什么 1.log最后的error 注意&#xff1a;warnning暂时可以不用过于关注&#xff0c;如果特别的warning出现问题&#xff0c;在其他方面也会体现 2.run time 在大型项目实际开发中&#xff0c;周期一般较长&#xff0c;可能几天过这几周&#xff0c;所以这就需要…

STK12 RPO模块学习 (1)

一、背景介绍 在STK12中&#xff0c;在Astrogator的模块上开发了新的模块&#xff08;Rendezvous and proximity operations)。轨道交会接近通常来说是一个很复杂的过程。RPO实现需要对轨道动力学有一个清晰的理解&#xff0c;并且对于Astrogator模块具备很强的背景和经验&…

前端工程化 - 快速通关 - vue

目录 npm 2.1环境 2.2命令 2.3使用流程 Vite 3.1简介 3.2实战 Vue3 4.1组件化 4.2SFC 4.3Vue工程 4.4基础使用 4.5进阶用法 4.6总结 npm npm 是 nodejs 中进行 包管理 的工具&#xff1b; 下载&#xff1a;Node.js — Run JavaScript Everywhere 2.1环境 ●安…

基于fastapi sqladmin开发,实现可动态配置admin

1. 功能介绍&#xff1a; 1. 支持动态创建表、类&#xff0c;属性&#xff0c;唯一约束、外键&#xff0c;索引&#xff0c;关系&#xff0c;无需写代码&#xff0c;快速创建业务对象&#xff1b; 2. 支持配置admin显示参数&#xff0c;支持sqladmin原生参数设置&#xff0c;动…

codeblock couldn‘t create project directory :path

1.原因&#xff1a; 因为我使用的是mac虚拟机&#xff0c;所以路径跟window不太一样&#xff0c;可能导致codeblock找不到路径&#xff0c;所以无法创建。 2.换一个跟window文件路径相同的就好&#xff0c;例如 C:\programPractice\myProject\

JavaEE之线程(5)——Java内存模型、内存可见性、volatile关键字

前言 volatile可以理解成轻量级的 synchronized&#xff0c; 它在多CPU开发中保证了共享变量的“可见性”&#xff0c;可见性我们可以理解成是&#xff1a;当一个线程修改一个共享变量时&#xff0c;另一个线程可以读到这个修改的值。由于它不会引起线程的上下文切换和调度&am…

arp icmp 等报文格式

ARP报文格式 ARP是一个独立的三层协议&#xff0c;所以ARP报文在向数据链路层传输时不需要经过IP协议的封装&#xff0c;而是直接生成自己的报文&#xff0c;其中包括ARP报头&#xff0c;到数据链路层后再由对应的数据链路层协议&#xff08;如以太网协议&#xff09;进行封装…

[第五空间 2021]WebFTP

目录扫描git泄露phpinfo.php 一开始想到是sql注入&#xff0c;但是不行。目录扫描&#xff0c;发现 .git 和 phpinfo.php 访问phpinfo.php&#xff0c;ctrlf 搜索 flag&#xff0c;找到 flag。

Pyqt中QThread传递自己定义的参数、类、函数

Pyqt中QThread传递自己定义的参数、类、函数 1 pyqt中Qthread传递自己定义的参数2 pyqt中Qthread传递自己定义的类3 pyqt中Qthread传递自己定义的函数4 pyqt中Qthread内部定义自己的函数5 pyqt中Qthread传递参数到内部定义自己的函数 1 pyqt中Qthread传递自己定义的参数 在PyQ…

选择法(数值排序)(C语言)

一、运行结果&#xff1b; 二、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h>//声明排序函数sort; void sort(int a[], int n);int main() {//初始化变量值&#xff1b;int i, a[10];//填充数组&#xff1b;printf("请输入10个整数\n&…

C语言错题本之<结构体>

以下叙述中正确的是________. A)预处理命令行必须位于源文件的开头 B)在源文件的一行上可以有多条预处理命令 C)宏名必须用大写字母表示 D)宏替换不占用程序的运行时间 答案&#xff1a;D 解析&#xff1a; A&#xff1a;在C、C等编程语言中&#xff0c;预处理指令&#xff08;…

轻松掌握抖音自动点赞技巧,快速吸粉

在当今这个信息爆炸的时代&#xff0c;抖音作为短视频领域的领头羊&#xff0c;不仅汇聚了庞大的用户群体&#xff0c;也成为了品牌和个人展示自我、吸引粉丝的重要平台。如何在众多内容创作者中脱颖而出&#xff0c;实现高效引流获客&#xff0c;精准推广自己的内容&#xff0…

springboot+vue+mybatis台球俱乐部管理系统的设计与实现+PPT+论文+讲解+售后

随着信息技术在管理上越来越深入而广泛的应用&#xff0c;作为一般的台球厅都会跟上时代的变化&#xff0c;用上计算机来代表重复性的劳动&#xff0c;并且给用户一种新奇的感受&#xff0c;实现台球俱乐部系统 在技术上已成熟。本文介绍了台球俱乐部系统 的开发全过程。通过分…

Jmeter+Grafana+Prometheus搭建压测监控平台

本文不介绍压测的规范与技术指标&#xff0c;本文是演示针对Jmeter如何将压测过程中的数据指标&#xff0c;通过Prometheus采集存储&#xff0c;并在Granfan平台进行仪表盘展示; 介绍 系统压测属于日常项目开发中的一个测试环节&#xff0c;使用测试工具模拟真实用户行为&…

【C++】 C++ 编写 鸡兔同笼程序

文章目录 “鸡兔同笼”问题是一个经典的数学问题&#xff0c;要求根据总头数和总腿数来计算鸡和兔的数量。假设鸡有 2 条腿&#xff0c;兔有 4 条腿。可以通过以下步骤求解这个问题&#xff1a; 1 .设鸡的数量为 x&#xff0c;兔的数量为 y。2.根据题意&#xff0c;我们有以下…

CentOS7中如何docker-compose

在 CentOS 7 上安装 docker-compose 需要几个步骤 步骤 1: 安装 Docker 首先&#xff0c;确保你已经安装了 Docker。如果没有安装&#xff0c;可以通过以下命令安装&#xff1a; sudo yum update -y sudo yum install -y yum-utils sudo yum-config-manager --add-repo http…

老铁,对不住了,没有B端成品界面可售,都是定制化设计

经常有粉丝老铁问我有没有成品的UI图可以出售&#xff0c;实在对不住&#xff0c;我们不销售设计成品。 UI设计图是一种设计稿&#xff0c;它是用来展示和呈现产品的界面设计和交互效果的&#xff0c;而不是一个完整的、可交付的成品。UI设计图通常是以静态的形式呈现&#xf…

基于springboot+vue+Mysql的在线答疑系统

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…

CS144 Checkpoint 4: interoperating in the world(2024)

分析网络路径和性能&#xff1a; mtr命令 mtr 输出的详细分析&#xff1a; mtr 162.105.253.58 命令用于结合 traceroute 和 ping 的功能&#xff0c;实时监测并分析从你的计算机到目标主机&#xff08;IP 地址 162.105.253.58&#xff0c;北京大学计算中心&#xff09;之间…