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

入门 git

目录

  • 文章简介
  • 1. git 是什么
  • 2. 为什么要用 git
  • 3. git 入门操作
  • 4. git 的来源简述(拓展)

文章简介

本篇文章主要介绍命令行下的 git 的入门操作(本地 – 远端仓库的推送拉取),以及简单理解什么是 git, 为什么要用 git,以及 git 的来源简述。

1. git 是什么

在了解什么是 git 之前,我们需要先了解一个现实中的需求案例。

在企业内部,有产品经理/项目经理,他们是面向客户的,解决客户需求的,而开发人员则是与产品经理进行对接。假设在某公司,有产品经理赵六,有程序员张三。有一天,赵六对接完客户,了解了客户的需求之后,就颁发下去给张三等人去协助开发完成这个任务。

一个月后,张三作为小组代表,将项目拿给赵六看,赵六看完摇了摇头,不太满意,于是让张三回去继续改。两天后,张三又拿着这个项目过来找赵六,赵六还是不满意,让他继续改。改第三次…第四次…第五次…

最后,赵六对比了张三改的所有版本,还是觉得,之前的第三版是最好的,决定还是用回之前的第三版吧!于是就告诉张三:“ 你还是别改了,你把之前的第三版,拿给我看就好了 ”。听到这里,张三整个人都愣住了,张三是个小白程序员,他不懂 git,于是,他的所有改动,都是在基于原来的版本进行的修改!最后张三只能苦逼的回忆起来第三版,并且进行还原,最后对接产品经理。有了这次教训之后,张三就养成了备份的习惯,每次都会保留原来的版本。

所以什么是 git 呢??

你可以理解为,git 可以帮你完成版本控制,划分出各个版本之间的区别,不再需要你手动维护各个版本,并且可以完成多人协助开发(本篇文章不讲),git 推送到远端仓库也可以达到 “备份” 的作用。

在 git 中,有两个名词叫做,本地仓库,远端仓库。

那么什么是本地仓库和远端仓库? ----- 在 git 新建仓库之后,将仓库拉取到你本地磁盘中的那个目录,就叫做本地仓库!反之,远端仓库则是存储在 git 服务器的地方,叫做远端仓库!所以本地仓库就是存储在你本机,远端仓库就是存储在 git 的服务器。

2. 为什么要用 git

就如上面的故事所说,我们自己也好,或者企业也好,在实际的开发过程中,都有对版本控制的需求,一个稍微复杂一点的项目,不可能一气呵成的完成,中途肯定是磕磕绊绊,改改删删,指不定哪天你回过头,又觉得前面哪个版本好,所以版本控制,在实际开发中可以带来很大的便利。再者,假设今天你的机器出问题了,开不了机,文件莫名其妙缺失等因素,你如果推送到了远端,那你不还有远端嘛,对别人,或者你自己,都是一个极大的帮助。

3. git 入门操作

git clone 仓库地址			// 拉取远端仓库到本地
git add 文件/目录			// 添加文件到 git
git commit -m "提交日志"  	// 提交改动到本地,这里的日志不能随便写!根据实际情况写!
git push					// 推送同步到远端仓库上
git log						// 查看提交日志
git status					// 查看当前的 git 状态(比如有哪些文件还没有添加到 git,没有提交,没有推送)

4. git 的来源简述(拓展)

在 linux 领域学习或者开发的,都知道 linux 的祖师爷 雷纳斯托瓦兹。一名 linux 内核的设计者,并且将 linux 进行开源。而在 linux 社区成立之时,雷纳斯托瓦兹就经常收到了来自社区的各大顶尖系统工程师的邮件(因为开源,所以 linux 系统的问题和缺点,都会有人进行发现及修改),所以咱祖师爷每天就需要去根据各界大佬发来的邮件,然后去整合这些代码,而版本控制的需求也因此诞生。因为有很多人,所以也就有很多个版本,而人工去维护这些版本,费时费力费心!

但是,随着社区的发展壮大,参与 linux 开发的人也越来越多,总不能每天就都在整合代码吧?

于是,雷纳斯托瓦兹就想,能不能在世面三找一款软件,能够自动化合并别人所提交的代码,并且能够很好的对 linux 代码进行管理的这么一款软件。但是在当时年代,大部分的版本控制相关的软件都是收费的,而当时社区秉承着一种开源精神等因素,都拒绝使用收费软件。

好巧不巧,后来有一个有情怀的企业,为 linux 社区免费提供了这么一款软件,这也对 linux 社区的发展提供了很大的帮助。但是好景不长,由于 linux 社区都是当时年代的顶尖工程师,能力强,好奇心重,于是有一天,社区有人就尝试去破解这个软件,后来被该企业发现,就对 linux 社区终止这个软件的授权了。

所以后来,雷纳斯托瓦兹干脆就自己写了一款版本控制的demo,并且也进行开源!所以当时写操作系统的人,也都进行了该软件的开发,不久之后就有了我们现在的 git !



如果感觉该篇文章给你带来了收获,可以 点赞👍 + 收藏⭐️ + 关注➕ 支持一下!

感谢各位观看!

相关文章:

  • MySQL:SELECT 语句
  • Android 11 HAL层集成FFMPEG
  • Flink源码学习资料
  • 机体坐标系和导航坐标系
  • 【中项】系统集成项目管理工程师-第2章 信息技术发展-2.1信息技术及其发展-2.1.1计算机软硬件与2.1.2计算机网络
  • springboot防止重复提交的方案有哪些
  • [2019红帽杯]Snake
  • 纯前端导出xlsx表格
  • 深入理解并使用 MySQL 的 SUBSTRING_INDEX 函数
  • STM32中PC13引脚可以当做普通引脚使用吗?如何配置STM32的TAMPER?
  • docker搭建普罗米修斯监控gpu
  • 基于 Three.js 的 3D 模型加载优化
  • Python实现人脸识别
  • 【IEEE出版,会议历史良好、论文录用检索快】第四届计算机科学与区块链国际学术会议 (CCSB 2024,9月6-8)
  • 【项目】星辰博客介绍
  • 【许晓笛】 EOS 智能合约案例解析(3)
  • 10个确保微服务与容器安全的最佳实践
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • eclipse(luna)创建web工程
  • JavaScript 一些 DOM 的知识点
  • JavaScript设计模式之工厂模式
  • Lucene解析 - 基本概念
  • Python 基础起步 (十) 什么叫函数?
  • spark本地环境的搭建到运行第一个spark程序
  • 从零搭建Koa2 Server
  • 规范化安全开发 KOA 手脚架
  • 聊聊spring cloud的LoadBalancerAutoConfiguration
  • 七牛云假注销小指南
  • 前端攻城师
  • 如何借助 NoSQL 提高 JPA 应用性能
  • 如何胜任知名企业的商业数据分析师?
  • 学习笔记TF060:图像语音结合,看图说话
  • 树莓派用上kodexplorer也能玩成私有网盘
  • ​ ​Redis(五)主从复制:主从模式介绍、配置、拓扑(一主一从结构、一主多从结构、树形主从结构)、原理(复制过程、​​​​​​​数据同步psync)、总结
  • ​Benvista PhotoZoom Pro 9.0.4新功能介绍
  • ​软考-高级-信息系统项目管理师教程 第四版【第14章-项目沟通管理-思维导图】​
  • ​一、什么是射频识别?二、射频识别系统组成及工作原理三、射频识别系统分类四、RFID与物联网​
  • ‌分布式计算技术与复杂算法优化:‌现代数据处理的基石
  • #define MODIFY_REG(REG, CLEARMASK, SETMASK)
  • (4)事件处理——(2)在页面加载的时候执行任务(Performing tasks on page load)...
  • (附源码)基于SSM多源异构数据关联技术构建智能校园-计算机毕设 64366
  • (几何:六边形面积)编写程序,提示用户输入六边形的边长,然后显示它的面积。
  • (一)utf8mb4_general_ci 和 utf8mb4_unicode_ci 适用排序和比较规则场景
  • (转)淘淘商城系列——使用Spring来管理Redis单机版和集群版
  • .NET Framework 服务实现监控可观测性最佳实践
  • .netcore 如何获取系统中所有session_ASP.NET Core如何解决分布式Session一致性问题
  • .NET业务框架的构建
  • [2010-8-30]
  • [2018][note]用于超快偏振开关和动态光束分裂的all-optical有源THz超表——
  • [ARC066F]Contest with Drinks Hard
  • [Django 0-1] Core.Handlers 模块
  • [EWS]查找 文件夹
  • [E单调栈] lc2487. 从链表中移除节点(单调栈+递归+反转链表+多思路)
  • [HTML]HTML5实现可编辑表格
  • [java基础揉碎]关系运算符(比较运算符)逻辑运算符赋值运算符三元运算符运算符的优先级