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下载与安装

基本概念

  • 仓库(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等平台实现全球开发者贡献。
  • 非代码场景:管理文档、配置文件、数据科学项目等。
相关推荐
司徒小夜9 小时前
处理git没做修改,但是文件显示变更的情况
git
m0_7493175210 小时前
vscode里如何用git
ide·git·vscode
Hello.Reader10 小时前
Git 安装全攻略Linux、macOS、Windows 与源码编译
linux·git·macos
王景程11 小时前
SELinux是什么以及如何编写SELinux策略
git·github
Chuncheng's blog11 小时前
如何基于Mihomo Party http端口配置git与bash命令行代理
git·http·bash
Tom Boom12 小时前
Git常用命令完全指南:从入门到精通
大数据·git·elasticsearch·docker·自动化测试框架
不爱学英文的码字机器13 小时前
[Git] 文件删除
git
DZSpace14 小时前
git stash命令用法
git
Vowwwwwww14 小时前
GIT历史存在大文件的解决办法
前端·git·后端
@BreCaspian15 小时前
Git 推送失败解决教程——error: failed to push some refs to
大数据·git·elasticsearch