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…...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)
题目:3442. 奇偶频次间的最大差值 I 思路 :哈希,时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况,哈希表这里用数组即可实现。 C版本: class Solution { public:int maxDifference(string s) {int a[26]…...
Android Wi-Fi 连接失败日志分析
1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分: 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析: CTR…...
java_网络服务相关_gateway_nacos_feign区别联系
1. spring-cloud-starter-gateway 作用:作为微服务架构的网关,统一入口,处理所有外部请求。 核心能力: 路由转发(基于路径、服务名等)过滤器(鉴权、限流、日志、Header 处理)支持负…...
【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密
在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...
【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表
1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!
5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...
css的定位(position)详解:相对定位 绝对定位 固定定位
在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战
“🤖手搓TuyaAI语音指令 😍秒变表情包大师,让萌系Otto机器人🔥玩出智能新花样!开整!” 🤖 Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制(TuyaAI…...

在WSL2的Ubuntu镜像中安装Docker
Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包: for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...
#Uniapp篇:chrome调试unapp适配
chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器:Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...