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

2023.12.4 GIT的概念和组成

目录

目录

1.git的介绍

2.git的历史

开发者:Linus Torvalds

Linux的创始人

 3.git和svn的对比

svn:集中式管理

git:分布式管理

4.git管理的组成结构

5.取消git文件夹追踪



1.git的介绍

        git是项目版本管理工具,能自动的将多个版本进行管理存储,类似于快照,多个人共享版本

        git的诞生:分布式项目管理工具,目前整个行业最流行最受欢迎的项目版本管理工具

2.git的历史

开发者:Linus Torvalds

  • Linux的创始人

  • Linux诞生以后,全球很多开发者开发了 很多个版本的Linux,提交给Linus Torvalds

  • Linus Torvalds 将优秀的代码集成在Linux内核中,手动管理所有的代码

  • Linus Torvalds 不喜欢传统的免费CVS等工具,因为这些工具不好用,好用的都收费

  • Linus Torvalds 先选择了一个商业化的工具BitKeeper ,达成协议可以免费使用

  • 于是团队中的一个哥们有个想法:能不能破解这个东西?

  • 被发现了:Linus Torvalds 保证不再破解

  • 到 2005 年的时候,开发 BitKeeper 的商业公司同 Linux 内核开源社区的合作关系结

    束,他们收回了免费使用 BitKeeper 的权力

  • 两周以后,Linus Torvalds 自己用C语言开发了Git,使用了类似于Linux的管理方式

  • Linus Torvalds :将Linux的版本控制切换到Git上

    • Git的开发汲取了其他的版本控制工具的优点,避免了缺点


 3.git和svn的对比

svn:集中式管理

  • 所有版本的代码都集中在SVN的服务器上

  • 任何一个开发者,都只能连接SVN服务器,下载代码和上传新的版本

  • 集中式:所有的开发都围绕SVN服务器为核心

  • 缺点

    • 必须联网

      • 局域网:还是比较快的,但是回家以后就没办法开发了

        • 在公司下载好

        • 回家开发,只能开发一个版本

        • 回到公司上传这个版本

      • 互联网:特别慢

        • 在任何一个地方连接SVN服务器,进行下载和上传

    • 自己无法自动管理多个版本

    • SVN服务器存在单点故障:假如服务器崩了,所有东西就都没了


git:分布式管理

    • ==去中心化模式==

    • 优点

      • 不需要联网,自己的笔记本就是个本地版本库,直接利用自己的笔记本实现版本的管理

      • 自己可以管理任意多个版本

      • 不需要担心公共的版本库故障,每个人的本地都有版本库

Git的特点

  • 适合于分布式开发,多人可以共同开发,强调个体

  • 公共的版本库服务器的压力不会太大

  • 速度快、更加灵活

  • 任意的开发者之间如果产生冲突也容易解决

  • 不需要联网也可以实现多版本管理


4.git管理的组成结构

  • 本地版本控制Git服务器

    • ==工作区【Work Dir】==:就是你开发和修改代码的地方

    • ==暂存区【Index】==:临时存放你即将提交的版本的地方

      • 所有需要保存的版本必须先添加到暂存区

    • ==本地版本仓库【HEAD】==:本地的版本库,实现本地的版本的管理

      • 所有暂存区的版本会被提交到本地版本库

  • ==远程版本仓库==:用于共享项目代码版本

    • GitHub: GitHub: Let’s build from here · GitHub

    • Gitee: Gitee - 基于 Git 的代码托管和研发协作平台

5.取消git文件夹追踪

右键点击选中的已提交文件夹,然后选择Git Bash Here

进入到黑窗口页面,输入命令

find . -name ".git" | xargs rm -Rf

 即可取消文件夹同步


http://www.kler.cn/news/161024.html

相关文章:

  • 几分钟在Ubuntu搭建本地Emlog博客网站并发布至公网无需购买域名服务器
  • 计网Lesson5 - MAC 地址与 ARP
  • 51单片机程序
  • 使用广播机制将for循环转为矩阵运算
  • matlab 点云放缩变换
  • [linux] 解压缩xz
  • 高精度加法,减法,乘法,除法(上)(C语言)
  • Doris 编译错误 error: No best alternative for libs/context/build/asm_sources
  • Python计算两个给定单词之间相同字符的数量
  • methods
  • kafka3.6.0部署
  • 分享一个基础面试题---手写call
  • UDP Socket API 的讲解,以及回显服务器客户端的实现
  • 如何在Linux上部署1Panel运维管理面板并远程访问内网Web端管理界面
  • 图像瞎总结
  • 深入了解MySQL临时表的使用和优势
  • 简谈PostgreSQL的wal_level=logic
  • RT_Thread_使用FAL组件配置stm32f407片上flash读写
  • 亚马逊云科技re:Invent,生成式AI正在彻底改变开发者的工作方式
  • 无与伦比的夜景增强技术解决方案
  • 【智能家居】二、添加火灾检测模块(烟雾报警功能点)
  • 普华永道:国有企业要动态布局和管理供应商资源池
  • 【c】杨辉三角
  • FreeRTOS系统延时函数分析
  • Large Language Models areVisual Reasoning Coordinators
  • 优思学院|六西格玛质量管理的工具、方法和手段
  • 在Spring Boot中使用JavaMailSender发送邮件
  • 概念理论类-k8s :架构篇
  • UML图部分总结
  • 练习-java输入输出之文件字节io流之合并文件