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

Linux工具 - 耀眼的git

在这里插入图片描述

~~~~

前言

提起github,相信你或多或少都听过它的大名,它是全球程序员的圣地,是计算机开源精神的代表。而github就是在git的基础上搭建起来的,全球有非常多的人在使用着git工具。本文将主要介绍在Linux系统中如何方面快捷的使用git工具来帮助我们进行学习和编程。
码云Gitee官网
Github官网


耀眼的Git

Git是什么(本质)

简单来说,git是一款进行**版本管理(控制)**工具。
git管理着用户上传的所有文件,以及用户修改之后的文件。git对这些文件进行版本管理,这样如果用户修改之后的文件不符合其预期(如甲方刁难),那么用户想要选择回退到修改之前文件版本时,又因为git管理着从文件创建开始的每一个修改版本,所以此时git可以直接给用户该文件修改之前的版本,便于用户对该文件重新修改。
简单示意图:
image.png

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仓库最重要的部分。
image.png

新建仓库

在github或gitee中新建一个仓库
image.png
image.png
image.png

git clone 克隆云端仓库到本地

image.png
image.png
在Linux中

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

image.png

git add

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

git add 文件名

image.png

git commit -m

将暂存区中的文件提交到本地版本库(本地仓库.git)

git commit -m '本次提交概要'

image.png

git push

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

git push

image.png

git pull

拉取远端的仓库并合并到本地仓库

git pull

git status

显示当前工作目录的状态信息

git status

image.png

git log

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

git log

image.png

git mv

移动工作目录的文件或修改工作目录的文件名

git mv 原文件名 新文件名

修改文件名
image.png
移动文件
image.png

git rm

删除工作目录的文件或目录

git rm 文件名
git rm -rf 目录

删除文件hello
image.png
删除目录dir
image.png

配置免密码提交

在命令行操作不熟悉的时候,不推荐配置免密码,虽然每次提交都不用再输入密码了,但如果是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个页面。 二、作品演示 三、代…...

微信小程序订阅消息授权弹窗事件

微信小程序消息订阅授权弹窗事件 &#xff0c;每次授权完成之后&#xff0c;只可以推送一条模板消息。 目录 1、HTML代码 2、JS代码 1、HTML代码 <button bindtap"openPopup" class"openPopup">订阅消息</button> 2、JS代码 // 是否设置过授…...

谷歌的后量子密码学威胁模型

1. 引言 若现在不使用量子安全算法来加密数据&#xff0c;能够存储当前通信的攻击者最快十年内就能对其解密。这种先存储后解密的攻击是当前采用后量子密码学 (post-quantum cryptography&#xff0c;PQC) 背后的主要动机&#xff0c;但其他未来的量子计算威胁也需要一个深思熟…...

机器人在果园内行巡检仿真

文章目录 创建工作空间仿真果园场景搭建小车模型搭建将机器人放在仿真世界中创建工作空间 mkdir -p ~/catkin_ws/src cd ~/catkin_ws仿真果园场景搭建 cd ~/catkin_ws/src git clone https://gitcode.com/clearpathrobotics/cpr_gazebo.git小车模型搭建 DiffBot是一种具有两个…...

蓝桥杯算法基础(14):十大排序算法(归并排序)c语言版

归并排序 基于分而治之的思想&#xff0c;拿两个已经有序的序列重新组合成一个新的有序序列. 这是一个简单的合并函数&#xff0c;需要两个序列都有序 //默认a和b数组都是有序的 //temp为一个数组的首地址 void mergeSort(int a[],int,alen,int b[],int blen,int* temp){int …...

力扣刷题(DAY09-DAY11)

Day09 0958. 二叉树的完全性检验 知识点&#xff1a;完全二叉树&#xff1a;在一棵完全二叉树中&#xff0c;除了最后一层外&#xff0c;所有层都被完全填满&#xff0c;并且最后一层中的所有节点都尽可能靠左。最后一层&#xff08;第 h 层&#xff09;中可以包含 1 到 个节点…...

IPC之管道

什么是管道&#xff1f; 管道的本质是操作系统在内核中创建出的一块缓冲区&#xff0c;也就是内存 管道的应用 $ ps aux | grep xxx ps aux 的标准输出写到管道&#xff0c;grep 从管道这块内存中读取数据来作为它的一个标准输入&#xff0c;而且 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

找了半天找不到,为什么国内文章环境是真的差&#xff0c; redis 集群不支持事务&#xff0c;而你的方法上面估计使用了 spring 的事务导致错误具体解决&#xff1a; Transactional(propagation Propagation.NOT_SUPPORTED)public <T> void removeMultiCacheMapValue…...

AVP-SLAM:自动泊车系统中的语义SLAM_

AVP-SLAM&#xff1a;自动泊车系统中的语义SLAM 附赠最强自动驾驶学习资料&#xff1a;直达链接 ●论文摘要 在自动代客泊车系统中车辆在狭窄且拥挤且没有GPS信号的停车场中进行导航&#xff0c;具备准确的定位能力是至关重要的。传统的基于视觉的方法由于在停车场中由于缺少…...

PHP反序列化--pop链

目录 一、了解pop链 1、pop链&#xff1a; 2、pop链触发规则&#xff1a; &#xff08;1&#xff09;通过普通函数触发&#xff1a; &#xff08;2&#xff09;通过魔术方法触发&#xff1a; 3、pop链魔术方法例题&#xff1a; 一、了解pop链 1、pop链&#xff1a; pop链…...

单片机中的几种周期(振动/时钟,状态,机械,指令周期)表示的含义(51为例)

几种周期含义及个人理解描述 参考&#xff1a;短文&#xff0c;参考&#xff0c;百度 个人理解简述&#xff1a;对于几个周期性来说&#xff0c;可以认为是小单位的时间组合成了长时间。就像把一个数据赋值&#xff0c;这个是简单的一个机械周期能完成的动作&#xff0c;但需要…...

Spring Boot+Vue前后端分离项目如何部署到服务器

&#x1f31f; 前言 欢迎来到我的技术小宇宙&#xff01;&#x1f30c; 这里不仅是我记录技术点滴的后花园&#xff0c;也是我分享学习心得和项目经验的乐园。&#x1f4da; 无论你是技术小白还是资深大牛&#xff0c;这里总有一些内容能触动你的好奇心。&#x1f50d; &#x…...

【学习总结】Ubuntu中vscode用ROS插件调试C++程序

1、教程 参考博客&#xff1a; 【ROS】 在VScode中 ROS Debug 配置方法非常详细版 关于launch文件的配置&#xff1a; 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…...

设计模式和设计原则回顾

设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》

引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...

JavaScript 中的 ES|QL:利用 Apache Arrow 工具

作者&#xff1a;来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗&#xff1f;了解下一期 Elasticsearch Engineer 培训的时间吧&#xff01; Elasticsearch 拥有众多新功能&#xff0c;助你为自己…...

YSYX学习记录(八)

C语言&#xff0c;练习0&#xff1a; 先创建一个文件夹&#xff0c;我用的是物理机&#xff1a; 安装build-essential 练习1&#xff1a; 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件&#xff0c;随机修改或删除一部分&#xff0c;之后…...

如何将联系人从 iPhone 转移到 Android

从 iPhone 换到 Android 手机时&#xff0c;你可能需要保留重要的数据&#xff0c;例如通讯录。好在&#xff0c;将通讯录从 iPhone 转移到 Android 手机非常简单&#xff0c;你可以从本文中学习 6 种可靠的方法&#xff0c;确保随时保持连接&#xff0c;不错过任何信息。 第 1…...

sqlserver 根据指定字符 解析拼接字符串

DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...

鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/

使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题&#xff1a;docker pull 失败 网络不同&#xff0c;需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

CMake控制VS2022项目文件分组

我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...

如何更改默认 Crontab 编辑器 ?

在 Linux 领域中&#xff0c;crontab 是您可能经常遇到的一个术语。这个实用程序在类 unix 操作系统上可用&#xff0c;用于调度在预定义时间和间隔自动执行的任务。这对管理员和高级用户非常有益&#xff0c;允许他们自动执行各种系统任务。 编辑 Crontab 文件通常使用文本编…...

6个月Python学习计划 Day 16 - 面向对象编程(OOP)基础

第三周 Day 3 &#x1f3af; 今日目标 理解类&#xff08;class&#xff09;和对象&#xff08;object&#xff09;的关系学会定义类的属性、方法和构造函数&#xff08;init&#xff09;掌握对象的创建与使用初识封装、继承和多态的基本概念&#xff08;预告&#xff09; &a…...