当前位置: 首页 > news >正文

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等平台实现全球开发者贡献。
  • 非代码场景:管理文档、配置文件、数据科学项目等。

相关文章:

  • LeakCanary
  • 6. 存储池配置与CephFS创建 ceph version 14.2.22
  • Java 中的反射详解
  • 发行基础:本地化BUG导致审核失败
  • 【AlphaFold2】深入浅出,Feature Embedding|学习笔记
  • ev_loop_fork函数
  • 【部署】win10的wsl环境下调试dify的api后端服务
  • 初学者入门指南:什么是网络拓扑结构?
  • Java后端开发day46--多线程(二)
  • 互联网大厂Java求职面试实战:Spring Boot微服务与数据库优化详解
  • rust-candle学习笔记12-实现因果注意力
  • 数据结构精解:优先队列、哈希表与树结构
  • 【Redis】string
  • Exploring Temporal Event Cues for Dense Video Captioning in Cyclic Co-Learning
  • 【C++指南】STL容器的安全革命:如何封装Vector杜绝越界访问与迭代器失效?
  • [论文阅读]BadPrompt: Backdoor Attacks on Continuous Prompts
  • 提高工作效率的新选择[特殊字符]——Element Plus UI库
  • HNUST湖南科技大学-软件测试期中复习考点(保命版)
  • window环境下,如何通过USB接口控制打印机
  • Spring MVC 视图解析器 (ViewResolver) 如何配置? Spring Boot 是如何自动配置常见视图解析器的?
  • 冷冰川谈黑白
  • 代理销售保险存在误导行为,农业银行重庆市分行相关负责人被罚款0.1万元
  • 经彩申城!上海网络大V沙龙活动走进闵行
  • 秦洪看盘|重估叙事主题卷土重来,给A股注入新活力
  • 司法部:持续规范行政执法行为,加快制定行政执法监督条例
  • 巴基斯坦军方称印度袭击已致26死46伤