入门 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 !



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

感谢各位观看!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/46794.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

无需标注即可训练,自监督学习框架实现大量未标注毫米波雷达数据预训练自动驾驶感知任务

Abstract 由于雷达(radar)在雾天和恶劣天气下的操作能力,自动驾驶车辆使用雷达进行感知引起了越来越多的研究兴趣。然而,训练雷达模型受到大规模雷达数据注释的成本和难度的阻碍。为了克服这一瓶颈,我们提出了一种自监…

python pandas处理股票量化数据:笔记4

更新日线数据到最新日期,下面是深发展(平安银行)更新到20240715以后的stock_daily表。因为积分不够,无法下载tushare.pro接口的通用复权行情数据,只能使用旧的日线数据接口pro.daily,下载的数据没有日线复权…

驱动开发系列04-中断处理

目录 一:概述 二:启用中断 三:注册中断处理程序 四:自动检测中断号 五:快中断与慢中断 六:中断处理程序 七:处理参数和返回值 八:禁用中断 九:上半部和下半部 Tasklets Workqueues 十:共享中断 一:概述 虽然有时候只需使用I/O端口就能控制设备了,但大多…

事务失效的几种情况

一、事务管理的基本概念 事务有四个重要特性,称为ACID特性: Atomicity(原子性):事务中的所有操作要么全部完成,要么全部不完成。Consistency(一致性):事务完成后,数据要处于一致的状态Isolation(隔离性)&…

如何在电脑上演示手机上APP,远程排查移动端app问题

0序: 对接客户,给领导演示移动端产品,或者远程帮用户排查移动端产品的问题。都需要让别人能够看到自己在操作手机。 会议室可以使用投屏,但需要切换电脑和手机。 排查问题经常都是截图、或者手机上录制视频,十分繁琐…

Windows图形界面(GUI)-DLG-C/C++ - 滑动条(Trackbar)

公开视频 -> 链接点击跳转公开课程博客首页 -> ​​​​​​链接点击跳转博客主页 目录 滑动条(Trackbar) 使用场景 初始控件 控件消息 示例代码 滑动条(Trackbar) 使用场景 音量控制 亮度调节 视频播放进度控制 任何需要用户在特定范围内选择值的场景 初始控…

恶补,先验分布,后验分布 ,似然估计

恶补,打一遍增加印象 先验分布后验分布,似然估计 声明:仅记录个人学习,并无其他用途。 先验分布 后验分布, 似然估计 隔壁小哥的故事: 隔壁小哥要去15公里外的一个公园里玩,小哥可以选择步行…

【BUG】已解决:ModuleNotFoundError: No module named ‘PIL‘

已解决:ModuleNotFoundError: No module named ‘PIL‘ 目录 已解决:ModuleNotFoundError: No module named ‘PIL‘ 【常见模块错误】 错误原因: 解决办法: 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我…

离散型随机变量为何不是左连续?

目录 离散型随机变量 引言 离散型随机变量的定义和性质是什么? 定义 性质 如何证明离散型随机变量的分布函数在每个可能取值处不具有左连续性? 离散型随机变量的阶梯状分布函数是如何影响其左连续性的? 在统计学中,有哪些方…

web前端面向对象面试25题

1 . 简述面向对象?主要特征是什么? 参考回答: 面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物,是一种是软件开发方法面向对象主要有四大特性: 1、抽象 忽略一个主题中…

微信小程序-自定义组件生命周期

一.created 组件实例创建完毕调用。定义在lifetimes对象里。 不能在方法里面更改data对象里面的值,但是可以定义属性值。 lifetimes:{//不能给data设置值created(){this.testaaconsole.log("created") }}二. attached 模板解析完成挂载到页面。 可以更…

Gitee 使用教程1-SSH 公钥设置

一、生成 SSH 公钥 1、打开终端(Windows PowerShell 或 Git Bash),通过命令 ssh-keygen 生成 SSH Key: ssh-keygen -t ed25519 -C "Gitee SSH Key" 随后摁三次回车键(Enter) 2、查看生成的 SSH…

Carousel of Combinations

由圆排列的公式,不难有 C ( n , k ) ( k n ) k ! k C(n,k)(_k^n)\times \frac{k!}{k} C(n,k)(kn​)kk!​ 于是答案为 ∑ i 1 n ∑ j 1 i ( ( j i ) ⋅ ( j − 1 ) ! ) m o d j \sum_{i1}^{n}\sum_{j1}^{i}((_j^i)\cdot (j-1)!)mod\space j ∑i1n​∑j1i​((ji​…

React学习笔记(井字棋游戏)

本教程将引导你逐步实现一个简单的井字棋游戏,并且不需要你对 React 有任何了解。在此过程中你会学习到一些编写 React 程序的基本知识,完全理解它们可以让你对 React 有比较深入的理解。 教程分成以下几个部分: 配置 是一些准备工作。 概…

【Linux服务器Java环境搭建】010在linux中安装Redis,以及对Redis的配置与远程连接

系列文章目录 【Linux服务器Java环境搭建】 前言 好久没有更新博客了,今天下了班回到家,看到电脑桌上尘封已久的《Spring Boot应用开发实战》,翻开目录想起来之前写的系列【Linux服务器Java环境搭建】还未完结,那就继续吧&#…

实现异步天气数据获取与Spring缓存集成

你好呀,我是小邹。 在Web应用中,实时天气数据的获取是一个常见的需求,特别是在需要频繁更新天气信息的场景下,如旅游网站、天气应用或任何需要展示地理位置相关天气的应用。然而,频繁的外部API调用不仅会增加服务器的…

生成式AI的未来:对话的艺术与代理的实践

生成式 AI 的发展方向,是 Chat 还是 Agent? 随着生成式AI技术的不断进步,关于其未来发展方向的讨论也愈发激烈。究竟生成式AI的未来是在对话系统(Chat)中展现智慧,还是在自主代理(Agent&#x…

操作系统知识点详情-任务调度

本文目录 一、名词解释1. 调度器2. 优先级(1)优先级反转(2)优先级继承协议(3)优先天花板 3. 任务状态:新建、就绪、运行、阻塞、终止。4. 任务类型:计算密集型、I/O密集型5. 实时任务…

virsh命令使用笔记

远程查看 virsh -c qemutcp://root192.168.1.102:16510/system list --all 网络配置 virsh net-define net-name.xml 定义网络 virsh net-dumpxml net-name 当前网络xml virsh net-start net-name 启动网络 virsh net-autostart net-name 自启动网络 virsh net-destr…

HDU1011——Starship Troopers(树形DP),HDU1012——u Calculate e,HDU1013——Digital Roots

目录 HDU1011——Starship Troopers(树形DP) 题目描述 运行代码 代码思路 树形DP HDU1012——u Calculate e 题目描述 运行代码 代码思路 HDU1013——Digital Roots 题目描述 超时代码 改进后依旧超时代码 运行代码 代码思路 HDU1011——…