Git简介和发展

Git

简介

  • Git是一个开源的分布式版本控制系统,跨平台,支持Windows、Linux、MacOS。主要是用于项目的版本管理,是由林纳斯·托瓦兹(Linux Torvalds)在2005年为Linux内核开发而创建。

起因

  • 在2002年至2005年间,Linux内核开发团队使用BitKeeper(一个专有的版本控制系统)来管理代码,Linux团队汇集了全球顶尖人才,免不了有人想破解BitKeeper的软件,BitKeeper的开发公司BitMover在2005年停止了向Linux团队的免费版本支持。
  • 于是成功惹怒了Linus这位大佬,迫使Linus寻找一个高效、分布式的版本控制工具。由于对当时其他工具(如SVN、CVS)的性能和功能不满,Linus决定开发一个自己的版本控制系统,然后一周后,Git这个延续至今的闪耀新星诞生。只能说大佬就是大佬。
  • 站在历史的角度来说,BitKeeper公司也是错过了一次流芳百世的机会/商机,如果BitKeeper公司继续提供使用,可能也不会有Git的问世。历史的滚滚车轮总是这么奇妙,悄无声息,又很神秘,好像一切都是安排好的一样。

设计目标

  • 高效性:能够快速处理大型项目(如Linux内核)的版本控制
  • 分布式:允许开发者在本地操作完整的历史记录,无需依赖中央服务器
  • 数据完整性:通过SHA-1哈希确保版本历史的可靠性
  • 简单易用:提供直观的命令和灵活的工作流程

发展历史

  • 几个关键阶段

    • 2005年4月7日正式上线

    • 2005-2008年:社区接管与功能完善

    • 2008-2012年:普及与生态系统繁荣

    • 2012-2020年:性能优化与新功能

    • 2020年至今:现代化与企业级应用

当今地位

  • 普及度:Git是全球最流行的版本控制系统,几乎所有主流代码托管平台(Github、GitLab、Bitbucket)都是以Git为核心
  • 影响力:Git不仅用于软件开发,还被应用于书籍写作、法律文档管理、数据科学等领域
  • 维护:Git由开源社区进行维护,拥有全球顶尖的开发者贡献者,代码托管在GitHub上

Git下载与安装

  • 官网地址:https://git-scm.com/
    在这里插入图片描述
  • GitHub地址:https://github.com/git/git

在这里插入图片描述

基本概念

  • 仓库(Repository):存储代码和版本历史的地方,分为本地仓库和远程仓库。
  • 提交(Commit):代码变更的快照,记录修改内容和元数据(如作者、时间)。
  • 分支(Branch):代码的独立开发线,默认分支通常为main。
  • 合并(Merge):将不同分支的更改整合到一起。
  • 远程仓库(Remote):托管在服务器上的仓库,如GitHub、GitLab。

常用命令

  • 初始化:git init(创建新仓库)
  • 克隆:git clone (复制远程仓库)
  • 添加:git add (将更改加入暂存区)
  • 提交:git commit -m “message”(保存更改到本地仓库)
  • 推送:git push origin (上传本地更改到远程仓库)
  • 拉取:git pull(从远程仓库获取更新)
  • 分支:git branch(查看分支)、git checkout -b (创建并切换分支)
  • 合并:git merge (合并分支)

应用场景

  • 软件开发:管理代码版本,支持团队协作。
  • 开源项目:通过GitHub等平台实现全球开发者贡献。
  • 非代码场景:管理文档、配置文件、数据科学项目等。

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

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

相关文章

Perspective,数据可视化的超级引擎!

Perspective 是一个强大的交互式数据分析和可视化库,它允许你创建高度可配置的报告、仪表板、笔记本和应用程序。给用户提供了一个新的视角来看待数据。 Stars 数9125Forks 数1217 主要特点 高效流式查询引擎:Perspective使用C编写,并编译为…

MySQL COUNT(*) 查询优化详解!

目录 前言1. COUNT(*) 为什么慢?—— InnoDB 的“计数烦恼” 🤔2. MySQL 执行 COUNT(*) 的方式 (InnoDB)3. COUNT(*) 优化策略:快!准!狠!策略一:利用索引优化带 WHERE 子句的 COUNT(*) (最常见且…

如何在postman使用时间戳

1. 使用 Pre-request Script 动态转换​ 在发送请求前,将日期字符串转为时间戳并存储为环境变量/全局变量。 ​示例代码​ // 将日期字符串(如 "2023-10-01")转为时间戳(毫秒) const dateString "2…

嵌入式学习笔记 - 运算放大器的共模抑制比

一 定义 共模抑制比(Common Mode Rejection Ratio, ‌CMRR‌)是衡量差分放大器(或差分电路)抑制共模信号能力的关键指标。它在电子工程中尤为重要,特别是在需要处理微弱信号或对抗环境噪声的场景中。 核心概念 ‌共…

成龙电影中的三菱汽车

帕杰罗、 Lancer Evolution、 3000GT Mitsubishi Lancer Evo ll 1995 附录 Mercedes-Benz 280SL(W113),俗称“Pagoda”(帕格达)

Spring 项目无法连接 MySQL:Nacos 配置误区排查与解决

在开发过程中,我们使用 Nacos 来管理 Spring Boot 项目的配置,其中包括数据库连接配置。然而,在实际操作中,由于一些概念的混淆,我们遇到了一些连接问题。本文将分享我的故障排查过程,帮助大家避免类似的错…

LabVIEW与 IMAQ Vision 机器视觉应用

在工业生产及诸多领域,精确高效的检测至关重要。基于 LabVIEW 与 IMAQ Vision 的机器视觉应用,深入剖析其原理、系统构成、软件设计及优势,为相关领域工程师提供全面技术参考。 ​ 一、技术原理 (一)机器视觉技术基础…

【STM32 学习笔记】USART串口

注意:在串口助手的接收模式中有文本模式和HEX模式两种模式,那么它们有什么区别?   文本模式和Hex模式是两种不同的文件编辑或浏览模式,不是完全相同的概念。文本模式通常是指以ASCII编码格式表示文本文件的编辑或浏览模式。在文…

【WPS】怎么解决“word的复制表格”粘贴到“excel的单元格”变多行单元格的问题

把 word文档复制表格到这个excel表格上面的话,会出现由单个单元格变成多行单元格的情况。 现在,就这个问题怎么解决,提出了一个方案,就是先查找是什么导致了这个换行,然后再将换行的这个字符进行一个整体的替换&#x…

嵌入式开发面试题详解:STM32 与嵌入式开发核心知识全面解析

一、STM32 共有几种基本时钟信号? 题目 STM32 共有几种基本时钟信号? 解答 STM32 包含 4 种基本时钟信号,分别为 HSI(内部高速时钟)、HSE(外部高速时钟)、LSI(内部低速时钟&…

华为策略路由

路由策略:是对路由条目进行控制,通告控制路由条目影响报文的转发路径。路由策略为控制平面。 策略路由:是根据报文特征,认为的控制报文从某个即可转发出去,不修改路由表。即策略路由为在转发平面。 路由策略 策略路由…

# YOLOv3:深度学习中的目标检测利器

YOLOv3:深度学习中的目标检测利器 引言 在计算机视觉领域,目标检测是一项核心任务,它涉及到识别图像或视频中的物体,并确定它们的位置。随着深度学习技术的快速发展,目标检测算法也在不断进步。YOLO(You …

红黑树删除的实现与四种情况的证明

🧭 学习重点 删除节点的三种情况红黑树如何恢复性质四种修复情况完整可运行的 C 实现 一、红黑树删除的基础理解 红黑树删除比插入复杂得多,因为: 删除的是黑节点可能会破坏“从根到叶子黑节点数相等”的性质。删除红节点无需修复&#xf…

vue配置代理解决前端跨域的问题

文章目录 一、概述二、报错现象三、通过配置代理来解决修改request.js中的baseURL为/api在vite.config.js中增加代理配置 四、参考资料 一、概述 跨域是指由于浏览器的同源策略限制,向不同源(不同协议、不同域名、不同端口)发送ajax请求会失败 二、报错现象 三、…

T-SQL在SQL Server中判断表、字段、索引、视图、触发器、Synonym等是否存在

SQL Server创建或者删除表、字段、索引、视图、触发器前判断是否存在。 目录 1. SQL Server创建表之前判断表是否存在 2. SQL Server新增字段之前判断是否存在 3. SQL Server删除字段之前判断是否存在 4. SQL Server新增索引之前判断是否存在 5. SQL Server判断视图是否存…

金融企业如何借力运维监控强化合规性建设?

日前,国家金融监督管理总局网站公布行政处罚信息,认定某银行存在多项违规并对其进行罚款。其中,国家金融监督管理总局认定该银行主要违规内容包括: 一、部分重要信息系统识别不全面,灾备建设和灾难恢复能力不符合监管要…

leetcode hot100 技巧

如有缺漏谬误&#xff0c;还请批评指正。 1.只出现一次的数字 利用异或运算相同得0的特点。所有出现过两次的数字都会在异或运算累加过程中被抵消。 class Solution { public:int singleNumber(vector<int>& nums) {int res0;for(int i0;i<nums.size();i) res^n…

git做commit信息时的校验

亲测可用&#xff01;不行你来打我&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 1. 文件基本信息 属性说明文件名commit-msg&#xff08;必须无扩展名&#xff0c;如 .sh 或 .txt 会导致失效&#xff09;位置仓库的 .git/hooks/ 目录下&#xff08;或全局模…

4.9/Q1,GBD数据库最新文章解读

文章题目&#xff1a;The burden of diseases attributable to high body mass index in Asia from 1990 - 2019: results from the global burden of disease study 2019 DOI&#xff1a;10.1080/07853890.2025.2483977 中文标题&#xff1a;1990 年至 2019 年亚洲高体重指数导…

Activity动态切换Fragment

Activity 动态切换 Fragment 是 Android 开发中常见的需求&#xff0c;用于构建灵活的用户界面。 以下是实现 Activity 动态切换 Fragment 的几种方法&#xff0c;以及一些最佳实践&#xff1a; 1. 使用 FragmentManager 和 FragmentTransaction (推荐) 这是最常用和推荐的方…