【3.Git与Github的历史和区别】

目录

Git的历史和Github的区别

Git 是由Linux内核的创造者Linus Torvalds于2005年创建的。当时,Linux内核开源项目使用BitKeeper作为版本控制系统,但2005 年BitKeeper的商业公司终止了与Linux社区的合作,收回了免费使用权。因此,Linus决定自己开发一个版本控制系统,仅用两周 时间就用C语言写出了Git。Git迅速成为最流行的分布式版本控制系统,其设计目标包括速度快、简单、支持非线性开发模式、完全分布式以及能够高效管理大规模项目。

GitHub是一个基于Git的代码托管服务平台,由Chris Wanstrath、PJ Hyett、Tom Preston-Werner和Scott Chacon于2007年创立。它于2008年2月正式上线。GitHub不仅提供代码托管服务,还支持公共和私有仓库,并且拥有强大的社交功能和项目管理工具。2018年,微软以75亿美元收购了GitHub。

本质和功能

1.本质与功能
Git:

本质:Git 是一个分布式版本控制系统,用于跟踪文件和目录的变更历史。

功能:

  • 版本控制:记录代码的每一次修改,方便开发者查看历史版本、恢复旧版本或比较不同版本之间的差异。
  • 分支管理:支持创建多个分支,开发者可以在不同分支上独立开发,最后合并到主分支。
  • 离线操作:由于是分布式系统,每个开发者本地都有完整的仓库副本,可以在离线状态下进行大部分操作。
  • 冲突解决:在多人协作开发中,Git 能够帮助解决分支合并时可能出现的冲突。

GitHub:

本质:GitHub 是一个基于 Git 的代码托管服务平台,提供代码托管、协作开发、项目管理等功能。

功能:

  • 代码托管:为 Git 仓库提供远程存储服务,方便团队成员共享代码。
  • 协作开发:支持多人协作,提供 Pull Request(拉取请求)功能,方便团队成员提交代码并进行代码审查。
  • 项目管理:提供 Issues(问题跟踪)、Projects(项目管理)、Wiki(文档)等功能,方便团队进行项目管理和文档编写。
  • 社交功能:支持关注、星标、Fork(分叉)等操作,方便开发者发现和参与开源项目。
  • CI/CD 集成:支持与持续集成/持续部署(CI/CD)工具集成,例如 GitHub Actions,方便自动化测试和部署。
  1. 使用场景

    Git:

    主要用于本地开发环境,开发者可以在本地创建、修改和管理代码仓库。

    适用于个人开发和小型团队开发,尤其是在没有网络连接的情况下。

    GitHub:

    主要用于团队协作和开源项目,提供了一个集中化的平台,方便团队成员共享代码、协作开发和管理项目。

    适合大型团队和开源社区,便于代码共享、代码审查和项目管理。

  2. 存储方式

    Git:

    存储在本地计算机上,每个开发者都有一个完整的仓库副本,包括所有的提交历史和分支。

    GitHub:

    存储在云端服务器上,提供远程仓库,团队成员可以通过网络访问和同步代码。

  3. 操作方式

    Git:

    主要通过命令行工具操作,例如 git clone、git commit、git push、git pull 等。

    也可以通过图形化界面工具(如 GitKraken、SourceTree)进行操作。

    GitHub:

    提供网页界面操作,用户可以通过浏览器访问 GitHub 网站进行代码管理、提交 Pull Request、查看 Issues 等操作。

    也支持通过命令行工具操作,例如通过 git push 将本地代码推送到 GitHub 仓库。

  4. 安全性

    Git:

    主要依赖于本地安全措施,例如文件系统权限和网络防火墙。

    GitHub:

    提供多种安全措施,例如两步验证、SSH 密钥、OAuth 认证等,确保代码的安全性和访问控制。

相关推荐
tanyongxi6616 分钟前
Linux 中 Git 使用指南:从零开始掌握版本控制
linux·git
星火1913142 小时前
WinSW-x64(2.12.0)将nginx注册为服务可能有bug
nginx·github·bug
uhakadotcom2 小时前
提升PyODPS性能的实用技巧
后端·面试·github
大白的编程日记.2 小时前
【Git学习笔记】Git结构原理及其分支管理模型分析
笔记·git·学习
马院代表人4 小时前
Java入职篇(4)——git的使用
java·git·职场和发展
gs801404 小时前
GitLab 配置 Git LFS(Large File Storage)指南
git
这个懒人5 小时前
如何在github上参与开源项目
github·开源软件
年轮不改13 小时前
Ubuntu 配置 github 代理
ubuntu·github
FreakStudio13 小时前
三分钟教学:手把手教你实现Arduino发布第三方库
单片机·mcu·github·嵌入式·arduino·开发工具·电子diy·电子计算机
uhakadotcom15 小时前
Pandas DataFrame 入门教程
后端·面试·github