Linux工具 - 耀眼的git

~~~~
- 前言
- 耀眼的Git
- Git是什么(本质)
- Git出现的背景(本着开源的精神)
- 在命令行中使用Git(Come on 来使用Git吧)
- .git文件说明
- 新建仓库
- git clone 克隆云端仓库到本地
- git add
- git commit -m
- git push
- git pull
- git status
- git log
- git mv
- git rm
- 配置免密码提交
- 结语
前言
提起github,相信你或多或少都听过它的大名,它是全球程序员的圣地,是计算机开源精神的代表。而github就是在git的基础上搭建起来的,全球有非常多的人在使用着git工具。本文将主要介绍在Linux系统中如何方面快捷的使用git工具来帮助我们进行学习和编程。
码云Gitee官网
Github官网
耀眼的Git
Git是什么(本质)
简单来说,git是一款进行**版本管理(控制)**工具。
git管理着用户上传的所有文件,以及用户修改之后的文件。git对这些文件进行版本管理,这样如果用户修改之后的文件不符合其预期(如甲方刁难),那么用户想要选择回退到修改之前文件版本时,又因为git管理着从文件创建开始的每一个修改版本,所以此时git可以直接给用户该文件修改之前的版本,便于用户对该文件重新修改。
简单示意图:

Git出现的背景(本着开源的精神)
git是如何出现的,还要从雷纳斯托瓦兹开源Linux系统之后说起。
当是全世界范围的很多程序员都会参与Linux开源社区的建设,其中一项就是为Linux内核贡献代码,这些代码在合并之前需要先经过雷纳斯托瓦兹的审查,通过了才会出现在Linux源码中。雷纳斯托瓦兹每天的时间很大部分都被审查代码的工作缠住了,忙得不行,为了让自己从审查代码的工作中解放出来,雷纳斯托瓦兹开始寻找是否有能够替代自己的工具。
幸运的是,当时已经有商业公司开发出来了进行版本控制的工具,不幸的是,这个工具是收费的。虽然Linux开源社区可以负担得起这项费用,但是Linux作为开源操作系统,却使用了付费的工具,这不符合开源社区的理念,所以开始也没有使用这个付费的版本控制工具。之后的一段时间,雷纳斯托瓦兹仍然被困在代码的审查工作中,这款付费的版本控制工具所属公司的老板主动提出了让Linux开源社区免费使用这款工具。之后的很长时间,Linux开源社区都在使用这款版本控制工具,雷纳斯托瓦兹也从审查代码的工作中解放了出来,这项工作就在网上由所有人都能共同负责了。
但是不妙的事情发生了,Linux社区的部分爱好学习的程序员为了学习这个版本控制工具是如何编写的而进行了逆向破解,并公开在了Linux社区上,并且被前文中免费给Linux社区使用版本控制工具的公司头头发现了,于是Linux社区就不被允许使用这款工具了。之后的一段时间内,雷纳斯托瓦兹又被迫陷入到了代码审查的漩涡中,雷纳斯托瓦兹终于受够了这项工作,于是花了几周时间自己写了一个初版版本控制工具并命名为git,之后又开源了出版的git工具。Linux社区的程序员边顺理成章的涌入git的怀抱,于是git疯狂迭代,Linux内核代码也使用git进行版本控制,代码审查的工作也交给了全世界的程序员,之后git越来越流行,直到今天。
现在的github和gitee都是对git进行商业包装之后的产品。
在命令行中使用Git(Come on 来使用Git吧)
.git文件说明
git工具中经常出现仓库一词,那么仓库到底是什么呢?
其实就是一个文件目录,在本地仓库中所指的就是.git目录。在.git目录中包含了管理整个仓库所需的所有信息和数据(如历史记录、分支、标签、配置信息等),是git仓库最重要的部分。

新建仓库
在github或gitee中新建一个仓库



git clone 克隆云端仓库到本地


在Linux中
git clone https://gitee.com/用户名/test.git

git add
将工作目录中的文件添加到暂存区(stage area)
git add 文件名

git commit -m
将暂存区中的文件提交到本地版本库(本地仓库.git)
git commit -m '本次提交概要'

git push
把本地仓库的文件推送到远端github或gitee
git push

git pull
拉取远端的仓库并合并到本地仓库
git pull
git status
显示当前工作目录的状态信息
git status

git log
显示过往所有的提交信息,且提交信息不能被修改。
对于公开仓库,所有人都能看到你的提交信息,所以提交信息一般不要乱写。
git log

git mv
移动工作目录的文件或修改工作目录的文件名
git mv 原文件名 新文件名
修改文件名

移动文件

git rm
删除工作目录的文件或目录
git rm 文件名
git rm -rf 目录
删除文件hello

删除目录dir

配置免密码提交
在命令行操作不熟悉的时候,不推荐配置免密码,虽然每次提交都不用再输入密码了,但如果是git新手,应该要以熟悉基本操作为主,先把命令熟练使用起来,多数几次密码也就是顺手的事。
http://t.csdnimg.cn/4QBOd
结语
本文主要介绍了git工具在命令行中使用的常用命令,特别是三板斧(git add/git commit -m/ git push)。熟能生巧才是真理。
T h e E n d TheEnd TheEnd
相关文章:
Linux工具 - 耀眼的git
~~~~ 前言耀眼的GitGit是什么(本质)Git出现的背景(本着开源的精神)在命令行中使用Git(Come on 来使用Git吧).git文件说明新建仓库git clone 克隆云端仓库到本地git addgit commit -mgit pushgit pullgit st…...
Spring Security的开发
文章目录 1,介绍2, 核心流程3, 核心原理3.1 过滤器链机制3.2 主体3.3 认证3.4 授权3.5 流程图4, 核心对象4.1 UserDetailsService 接口4.2 PasswordEncoder 接口4.3 hasAuthority方法4.4 hasAnyAuthority方法4.5 hasRole方法4.5 hasAnyRole方法5, 核心注解5.1 @PreAuthorize5.1…...
C语言 实用调试技巧
我们的博客已经更新到了数据结构,但是当我在深耕数据结构时我发现我在C语言是遗漏了一个重要的东西,那就是C语言的使用调试技巧。这篇博客对数据结构非常重要,请大家耐心观看。 1. 什么是bug? 第一次被发现的导致计算机错误的飞蛾…...
GPT的实现细节
关于GPT的代码细节,这里梳理了一下: 数据集构造 原始数据集schema: inputwho is your favorite basketball player? outputOf course Kobe Bryant!那么在构造训练集时,根据chunk size构造多个输入: input_1who is …...
docker安装Milvus
docker安装Milvus 拉去CPU版本的milvus镜像 $ sudo docker pull milvusdb/milvus:0.10.0-cpu-d061620-5f3c00 docker pull milvusdb/milvus:0.10.0-cpu-d061620-5f3c00 mkdir -p milvus/conf cd milvus/conf ls wget https://raw.githubusercontent.com/milvus-io/milvus/v0.1…...
HTML静态网页成品作业(HTML+CSS)——世博园介绍(2个页面)
🎉不定期分享源码,关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 🏷️本套采用HTMLCSS,未使用Javacsript代码,共有2个页面。 二、作品演示 三、代…...
微信小程序订阅消息授权弹窗事件
微信小程序消息订阅授权弹窗事件 ,每次授权完成之后,只可以推送一条模板消息。 目录 1、HTML代码 2、JS代码 1、HTML代码 <button bindtap"openPopup" class"openPopup">订阅消息</button> 2、JS代码 // 是否设置过授…...
谷歌的后量子密码学威胁模型
1. 引言 若现在不使用量子安全算法来加密数据,能够存储当前通信的攻击者最快十年内就能对其解密。这种先存储后解密的攻击是当前采用后量子密码学 (post-quantum cryptography,PQC) 背后的主要动机,但其他未来的量子计算威胁也需要一个深思熟…...
机器人在果园内行巡检仿真
文章目录 创建工作空间仿真果园场景搭建小车模型搭建将机器人放在仿真世界中创建工作空间 mkdir -p ~/catkin_ws/src cd ~/catkin_ws仿真果园场景搭建 cd ~/catkin_ws/src git clone https://gitcode.com/clearpathrobotics/cpr_gazebo.git小车模型搭建 DiffBot是一种具有两个…...
蓝桥杯算法基础(14):十大排序算法(归并排序)c语言版
归并排序 基于分而治之的思想,拿两个已经有序的序列重新组合成一个新的有序序列. 这是一个简单的合并函数,需要两个序列都有序 //默认a和b数组都是有序的 //temp为一个数组的首地址 void mergeSort(int a[],int,alen,int b[],int blen,int* temp){int …...
力扣刷题(DAY09-DAY11)
Day09 0958. 二叉树的完全性检验 知识点:完全二叉树:在一棵完全二叉树中,除了最后一层外,所有层都被完全填满,并且最后一层中的所有节点都尽可能靠左。最后一层(第 h 层)中可以包含 1 到 个节点…...
IPC之管道
什么是管道? 管道的本质是操作系统在内核中创建出的一块缓冲区,也就是内存 管道的应用 $ ps aux | grep xxx ps aux 的标准输出写到管道,grep 从管道这块内存中读取数据来作为它的一个标准输入,而且 ps 和 grep 之间是兄弟关系&a…...
VUE-组件间通信(二)$emit
$emit 1、单向绑定 子组件向父组件传值 2、使用示例 父组件 <template><div id"app"><!-- 监听自定义触发事件 emitInvokeEvents--><SonDemo emitInvokeEvents"fatherFunction"></SonDemo></div> </template&…...
java 程序连接 redis 集群 的时候报错 MUTLI is currently not supported in cluster mode
找了半天找不到,为什么国内文章环境是真的差, redis 集群不支持事务,而你的方法上面估计使用了 spring 的事务导致错误具体解决: Transactional(propagation Propagation.NOT_SUPPORTED)public <T> void removeMultiCacheMapValue…...
AVP-SLAM:自动泊车系统中的语义SLAM_
AVP-SLAM:自动泊车系统中的语义SLAM 附赠最强自动驾驶学习资料:直达链接 ●论文摘要 在自动代客泊车系统中车辆在狭窄且拥挤且没有GPS信号的停车场中进行导航,具备准确的定位能力是至关重要的。传统的基于视觉的方法由于在停车场中由于缺少…...
PHP反序列化--pop链
目录 一、了解pop链 1、pop链: 2、pop链触发规则: (1)通过普通函数触发: (2)通过魔术方法触发: 3、pop链魔术方法例题: 一、了解pop链 1、pop链: pop链…...
单片机中的几种周期(振动/时钟,状态,机械,指令周期)表示的含义(51为例)
几种周期含义及个人理解描述 参考:短文,参考,百度 个人理解简述:对于几个周期性来说,可以认为是小单位的时间组合成了长时间。就像把一个数据赋值,这个是简单的一个机械周期能完成的动作,但需要…...
Spring Boot+Vue前后端分离项目如何部署到服务器
🌟 前言 欢迎来到我的技术小宇宙!🌌 这里不仅是我记录技术点滴的后花园,也是我分享学习心得和项目经验的乐园。📚 无论你是技术小白还是资深大牛,这里总有一些内容能触动你的好奇心。🔍 &#x…...
【学习总结】Ubuntu中vscode用ROS插件调试C++程序
1、教程 参考博客: 【ROS】 在VScode中 ROS Debug 配置方法非常详细版 关于launch文件的配置: launch.json {"version": "0.2.0","configurations": [{"name": "ROS: Launch","request"…...
html--蝴蝶
<!DOCTYPE html> <html lang"en" > <head> <meta charset"UTF-8"> <title>蝴蝶飞舞</title> <link rel"stylesheet" href"https://cdnjs.cloudflare.com/ajax/libs/meyer-reset/2.0/reset.min.cs…...
未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?
编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...
rknn优化教程(二)
文章目录 1. 前述2. 三方库的封装2.1 xrepo中的库2.2 xrepo之外的库2.2.1 opencv2.2.2 rknnrt2.2.3 spdlog 3. rknn_engine库 1. 前述 OK,开始写第二篇的内容了。这篇博客主要能写一下: 如何给一些三方库按照xmake方式进行封装,供调用如何按…...
JavaScript 中的 ES|QL:利用 Apache Arrow 工具
作者:来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗?了解下一期 Elasticsearch Engineer 培训的时间吧! Elasticsearch 拥有众多新功能,助你为自己…...
【单片机期末】单片机系统设计
主要内容:系统状态机,系统时基,系统需求分析,系统构建,系统状态流图 一、题目要求 二、绘制系统状态流图 题目:根据上述描述绘制系统状态流图,注明状态转移条件及方向。 三、利用定时器产生时…...
leetcodeSQL解题:3564. 季节性销售分析
leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...
关键领域软件测试的突围之路:如何破解安全与效率的平衡难题
在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件,这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下,实现高效测试与快速迭代?这一命题正考验着…...
sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!
简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求,并检查收到的响应。它以以下模式之一…...
JVM 内存结构 详解
内存结构 运行时数据区: Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器: 线程私有,程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 每个线程都有一个程序计数…...
排序算法总结(C++)
目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指:同样大小的样本 **(同样大小的数据)**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...
Golang——9、反射和文件操作
反射和文件操作 1、反射1.1、reflect.TypeOf()获取任意值的类型对象1.2、reflect.ValueOf()1.3、结构体反射 2、文件操作2.1、os.Open()打开文件2.2、方式一:使用Read()读取文件2.3、方式二:bufio读取文件2.4、方式三:os.ReadFile读取2.5、写…...
