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

GIT工具学习【1】:基本操作

目录

  • 0.本地代码分区
  • 1.配置自己的个人信息(设置一次即可)
  • 2.新建仓库
  • 3.提交代码到暂存区(加入购物车)
  • 4.从暂存区撤回(不会改变工作区文件)
  • 5.恢复指定版本(会改变工作区文件)
    • 5.1:第一种情况
    • 5.2:第二种情况
    • 5.3:第三种情况
  • 7.忽略文件
  • 8.查看信息
    • git status (暂存区和工作区的区别)
    • git log(查看历史提交记录)
  • 9.乱码问题解决
  • 10.使用别名

这两张图大概看看就可以,有个概念即可
在这里插入图片描述
在这里插入图片描述
链接: git官网
写在前面
我坚持认为,用得上的知识才是有用的,所以学习技能要以实际需求为导向,比如git工具可以管理linux这种庞大的项目,但是问题是,你需要嘛?
我们可以先找把自己的项目实现版本管理,git工具已经有极大的帮助了。

0.本地代码分区

git一共有三个区
工作区:就是我们编辑的那些文件夹,写的那些代码
暂存区:运行add命令就是把文件放到这个区里面
分支区:运行commit命令把暂存区提交到分支区,也就是真正到了git里面。

问题:why not submit directly to the branch area?
为什么要有暂存区,直接提交到分支区不好吗?
答案是:
当项目足够大的时候,这边改一点,那边改一点,暂时一点点的add暂存区,然后一次性的commit,
比如超市购物的时候,不能买一个饼干付一次款,买个饮料付一次款,最好是先放在购物车里面,最后一次性的结算。
很明显,购物车和这个缓存区的发明逻辑很像。
当然还有其他的好处,慢慢就体会到了。

1.配置自己的个人信息(设置一次即可)

这里相当与设置你的身份证,每一次提交都有信息留下,
注意:如果用户名和邮箱设置错了,重新设置一个正确的即可,会覆盖掉的。

$ git config--global user.name "dleid" #你的用户名
$ git config --global user.email"dleid@qq.com" # 配置你的邮箱
$ git config --global init.defaultBranch master # 配置主分支#查看设置的用户名
$ git config --global user.name  
# 查看设置的邮箱
$ git config --global user.email

2.新建仓库

进入到项目文件夹下,运行下面的命令。

$ git init

init之后会在当前路径下新建.git隐藏文件夹,这个文件夹就是版本区,如果想删除库,可以用rm -rf .git(要谨慎删除)(linux命令),window系统设置显示隐藏文件,直接删除即可。

3.提交代码到暂存区(加入购物车)

add可以每次添加一个文件,文件夹,整个文件夹
根据需求抄一下就可以了。

提交单个文件
$ git add src/status_interfaces/package.xml
提交单个文件夹
$ git add src
提交所有
$ git add.

4.从暂存区撤回(不会改变工作区文件)

能加进去,也能撤回去,开车时候,学会刹车一定比加油门更重要。

#清空暂存区
$ git reset
#从暂存区撤回指定文件
git reset <filename>

5.恢复指定版本(会改变工作区文件)

如果我们的代码改出了各种各样的问题,我们要恢复上一个版本。

5.1:第一种情况

仅仅在工作区更改,希望恢复到上一次提交状态:git checkout 恢复到最近一次提交的状态

5.2:第二种情况

已经add到暂存区:
先git reset 把文件从暂存区撤销掉
再次运行git checkout 覆盖掉工作区版本

5.3:第三种情况

已经commit提交了:
git reset --hard<commit的hash码>,这个时候工作区恢复为上一个版本,暂存区不变
注意如果已经远程到了服务器,这个命令要小心。

大家注意一个点:只要提交的版本,不管是不是覆盖之类,都是丢失不了的,可以用git reflog查看所有提交过的版本

7.忽略文件

很多的临时文件,我们是不需要管理的,比如备份文件等等是不需要关心的。

$ git add .gitignore
$ git commit -m "添加Git忽略文件"
$ git add.
$ git commit -m "测试提交临时目录"

##. 示例
以下是一个常见的 .gitignore 文件示例:

# 忽略日志文件
*.log# 忽略临时文件
*.tmp# 忽略编译生成的文件
*.pyc
*.class# 忽略 IDE 配置文件
.vscode/
.idea/# 忽略依赖文件夹
node_modules/# 忽略特定文件夹中的所有文件
build/
dist/# 忽略特定文件,但排除特定文件
*.txt
!README.txt

.gitignore 是一个非常实用的工具,可以帮助你保持仓库的整洁,避免不必要的文件被提交到版本控制中。

8.查看信息

git status (暂存区和工作区的区别)

运行这个命令之后
1.对列出版本库和暂存区的差异:显示如果暂存区版本比较新,就显示需要提交到版本库
在这里插入图片描述
2.对比暂存区和工作区文件的区别:如果工作区有更新,就显示文件有更改
在这里插入图片描述

如果想看详细的更改内容,可以用git diff,也可以git diff ,只显示指定的文件变更

git log(查看历史提交记录)

用下面的命令行查看log信息是比较直观的,但是命令行会比较长,可以使用别名的方式简化

查看历史提交记录
git log --all --pretty=oneline --abbrev-commit --graph

在这里插入图片描述
别名的使用方法:
在这里插入图片描述

9.乱码问题解决

第一步:看看是不是管用,不管用就进行第二步操作

git config --global core.quotepath false

第二步:git bash空白处右击选择options
在这里插入图片描述

10.使用别名

可以使用下面的命令,实现输入git lg 达到自定义输出提交记录的目的。

git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

相关文章:

GIT工具学习【1】:基本操作

目录 0.本地代码分区1.配置自己的个人信息&#xff08;设置一次即可&#xff09;2.新建仓库3.提交代码到暂存区&#xff08;加入购物车&#xff09;4.从暂存区撤回&#xff08;不会改变工作区文件&#xff09;5.恢复指定版本&#xff08;会改变工作区文件&#xff09;5.1&#…...

《国密算法开发实战:从合规落地到性能优化》

前言 随着信息技术的飞速发展,信息安全已成为全球关注的焦点。在数字化时代,数据的保密性、完整性和可用性直接关系到国家、企业和个人的利益。为了保障信息安全,密码技术作为核心支撑,发挥着至关重要的作用。国密算法,即国家密码算法,是我国自主设计和推广的一系列密码…...

【语法】C++中string类中的两个问题及解答

贴主在学习string类时遇到过两个困扰我的问题&#xff0c;今天拿出来给大家分享一下我是如何解决的 一、扩容时capacity的增长问题 在string的capacity()接口中&#xff0c;调用的是这个string对象的容量(可以存多少个有效字符)&#xff0c;而size()是调用的string对象现在有…...

LeetCode-154. 寻找旋转排序数组中的最小值 II

1、题目描述&#xff1a; 已知一个长度为 n 的数组&#xff0c;预先按照升序排列&#xff0c;经由 1 到 n 次 旋转 后&#xff0c;得到输入数组。例如&#xff0c;原数组 nums [0,1,4,4,5,6,7] 在变化后可能得到&#xff1a; 若旋转 4 次&#xff0c;则可以得到 [4,5,6,7,0,…...

2.数据结构:1.Tire 字符串统计

1.Tire 字符串统计 #include<algorithm> #include<cstring> #include<iostream>using namespace std;const int N100010; int son[N][26];//至多 N 层&#xff0c;每一层至多 26 个节点&#xff08;字母&#xff09; int cnt[N];//字符串至多 N 个&#xff…...

C语言复习4:有关数组的基础常见算法

# 数组的常见算法 - 查找算法 1. 基本查找/顺序查找 2. 二分查找/折半查找 3. 插值查找 4. 分块查找 5. 哈希查找 6. 树表查找 7. 斐波那契查找 - 排序算法&#xff08;顾名思义&#xff0c;就是把没有顺序的…...

Ubuntu从零创建Hadoop集群

目录 前言 前提准备 1.设置网关和网段 2.查看虚拟机IP及检查网络 3.Ubuntu相关配置 镜像源配置 下载 vim编辑器 4.设置静态IP和SSH免密(可选) 设置静态IP SSH免密 5.JDK环境部署 6.Hadoop环境部署 7.配置 Hadoop 配置文件 HDFS集群规划 HDFS集群配置 1.配…...

GPIO概念

GPIO通用输入输出口 在芯片内部存在多个GPIO&#xff0c;每个GPIO用于管理多个芯片进行输入&#xff0c;输出工作 引脚电平 0v ~3.3v&#xff0c;部分引脚可容任5v 输出模式下可控制端口输出高低电平&#xff0c;可以驱动LED&#xff0c;控制蜂鸣器&#xff0c;模拟通信协议&a…...

Node.js, Bun, Deno 比较概述

以下是 Node.js、Bun 和 Deno 的对比分析 概览 对比维度Node.jsDenoBun首次发布200920202022创始人Ryan DahlRyan Dahl&#xff08;Node.js 原作者&#xff09;Jarred Sumner运行时引擎V8&#xff08;Chrome&#xff09;V8&#xff08;Chrome&#xff09;JavaScriptCore&#…...

C# 类库打包dll文件

目录 前言操作流程注意事项 前言 在C#中&#xff0c;有多种方式可以对代码进行加密&#xff0c;以保护源代码不被轻易查看或修改&#xff0c;这篇文章主要介绍将C# cs类文件加密为dll文件的方式进行保护。 操作流程 在 Visual Studio 中&#xff0c;选择“创建新项目”。 选…...

Linux中的UDP编程接口基本使用

UDP编程接口基本使用 本篇介绍 在前面网络基础部分已经介绍了网络的基本工作模式&#xff0c;有了这些理论基础之后&#xff0c;下面先从UDP编程开始从操作部分深入网络 在本篇中&#xff0c;主要考虑下面的内容&#xff1a; 创建并封装服务端&#xff1a;了解创建服务端的…...

RAG项目实战:金融问答系统

需求痛点 私有知识很多&#xff0c;如何让大模型只选择跟问题有关的知识进行参考呢&#xff1f; 需求分析 是否可以使用关键词匹配呢&#xff1f;以前的搜索主要使用关键词匹配&#xff0c;这个要求太高了&#xff0c;需要提前抽取准备好关键词&#xff0c;有点像以前SEO的工…...

大白话React第十一章React 相关的高级特性以及在实际项目中的应用优化

假设我们已经对 React 前端框架的性能和可扩展性评估有了一定了解&#xff0c;接下来的阶段可以深入学习 React 相关的高级特性以及在实际项目中的应用优化&#xff0c;以下是详细介绍及代码示例&#xff1a; 1. React 高级特性的深入学习 1.1 React 并发模式&#xff08;Con…...

虚拟机Linux操作(持续更新ing)

虚拟机操作(持续更新ing) 虚拟机基本操作(Linux) # Linux # 立刻关机 poweroff # 立刻关机&#xff0c;可以选择数字或者具体时间 shutdown -h now # 立刻重启&#xff0c;可以选择数字或者具体时间 shutdown -r now # 立刻重启 reboot # cd 切换目录,下面用根目录举例 cd /…...

【开源-线程池(Thread Pool)项目对比】

一些实现**线程池&#xff08;Thread Pool&#xff09;**功能的开源项目的对比分析。 线程池功能的开源项目 项目名称语言优点缺点适用场景开源代码链接ThreadPoolC简单易用&#xff0c;代码简洁&#xff1b;适合快速原型开发。功能较为基础&#xff0c;不支持动态调整线程数…...

JMeter 实战项目脚本录制最佳实践(含 BadBoy 录制方式)

JMeter 实战项目脚本录制最佳实践&#xff08;含 BadBoy 录制方式&#xff09; 一、项目背景 在软件测试过程中&#xff0c;使用 JMeter 进行性能测试和功能测试是常见的操作。本实战项目将详细介绍如何使用 JMeter 自带工具以及 BadBoy 进行脚本录制&#xff0c;并完善脚本以…...

Jackson注解实战:@JsonInclude的妙用

在日常的Java开发中&#xff0c;我们经常需要将Java对象序列化为JSON格式&#xff0c;以便进行数据传输或存储。然而&#xff0c;有时候我们并不希望在JSON中包含某些空值或不必要的字段&#xff0c;这不仅会增加数据的冗余性&#xff0c;还可能对后续的处理造成困扰。Jackson库…...

CAN总线通信协议学习1——物理层

首先来看看CAN是怎么产生的&#xff1a;简单理解&#xff0c;CAN就是一种“拥有特别连接方式”的数据传输的总线&#xff0c;其有特定的一些规则。 &#xff08;注&#xff1a;资料及图片来源于知乎博主TOMOCAT。&#xff09; CAN总线的结构 查阅参考文献&#xff0c;OSI标准…...

Vim 常用快捷键大全:跳转、编辑、查找替换全解析

摘要&#xff1a; Vim 是一款非常强大的文本编辑器&#xff0c;许多程序员和系统管理员都离不开它。 本文详细介绍了 Vim 编辑器中的常用快捷键和命令&#xff0c;从基本模式、光标移动、编辑操作到查找替换&#xff0c;再到文件保存等常用操作&#xff0c;帮助你快速上手并提…...

【Python 数据结构 2.时间复杂度和空间复杂度】

Life is a journey —— 25.2.28 一、引例&#xff1a;穷举法 1.单层循环 所谓穷举法&#xff0c;就是我们通常所说的枚举&#xff0c;就是把所有情况都遍历了的意思。 例&#xff1a;给定n&#xff08;n ≤ 1000&#xff09;个元素ai&#xff0c;求其中奇数有多少个 判断一…...

终极指南:macOS百度网盘限速破解与SVIP解锁完整教程

终极指南&#xff1a;macOS百度网盘限速破解与SVIP解锁完整教程 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 你是否厌倦了在macOS上使用百度网盘时那…...

安全自动化工具:自动化安全检测和响应

安全自动化工具&#xff1a;自动化安全检测和响应 一、安全自动化工具概述 1.1 安全自动化工具的定义 安全自动化工具是指用于自动化执行安全检测、响应和管理任务的软件工具。它通过自动化脚本和智能算法&#xff0c;提高安全运营效率&#xff0c;降低人为错误风险。 1.2 安全…...

从零玩转 Linux:网络配置、软件安装及 Docker 实战

下载镜像地址 一、基础命令篇 显示网络状态工具 netstat -nltup #显示当前服务以及端口信息等 查看某个端口是否开启 1.2.1、使用 netstat 命令 sudo netstat -tuln | grep 80 1.2.2、使用 ss 命令 sudo ss -tuln | grep 80 1.2.3、使用 lsof 命令 sudo lsof -i :80 1.2.4、使用…...

RISC-V架构革命:从服务器到汽车电子的开放生态与定制化实践

1. 项目概述&#xff1a;一场架构革命的序章 最近几年&#xff0c;如果你关注处理器和芯片设计&#xff0c;有一个词的出现频率会越来越高&#xff1a;RISC-V。它不再仅仅是学术论文里的概念&#xff0c;也不再是极客圈子里的玩具。从云端的数据中心服务器&#xff0c;到我们每…...

WorkshopDL神器秘籍:零门槛解锁Steam创意工坊的终极跨平台方案

WorkshopDL神器秘籍&#xff1a;零门槛解锁Steam创意工坊的终极跨平台方案 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 你是不是曾经在Epic商店买了《盖瑞的模组》&#xff…...

Wireshark抓包提取NTLMv2 Hash实战指南

1. 这不是“黑客演示”&#xff0c;而是一次内网安全加固前的必做体检你有没有遇到过这样的情况&#xff1a;某天突然收到告警&#xff0c;说域控日志里出现了大量异常的NTLM认证失败记录&#xff1b;或者渗透测试报告里赫然写着“存在明文凭据泄露风险”&#xff0c;但你翻遍所…...

DDD 中的代码组织:按技术层分 vs 按领域模块分,哪种才是正解?

前言 在实践领域驱动设计&#xff08;DDD&#xff09;时&#xff0c;你可能见过两种截然不同的代码组织方式&#xff1a;一种是传统的按技术层划分文件夹&#xff0c;另一种是按业务模块划分文件夹。两种写法的人都声称自己在做 DDD&#xff0c;那到底哪种更合理&#xff1f;本…...

FARM问答系统调优终极指南:置信度校准与答案排序策略详解

FARM问答系统调优终极指南&#xff1a;置信度校准与答案排序策略详解 【免费下载链接】FARM :house_with_garden: Fast & easy transfer learning for NLP. Harvesting language models for the industry. Focus on Question Answering. 项目地址: https://gitcode.com/g…...

11.三层网络VXLAN

先把之前基于flat模式创建的虚机&#xff0c;全部删除 控制节点配置&#xff1a;1.修改配置文件/etc/neutron/neutron.conf 将[DEFAULT]区域 core_plugin ml2 service_plugins 修改为 core_plugin ml2 service_plugins router allow_overlapping_ips True2.修改/etc/neutro…...

AI Newsletter的本质:一种高信噪比的信息过滤与认知校准方法论

1. 项目概述&#xff1a;一份“AI Newsletter”背后的真实工作流与信息筛选逻辑你点开邮箱&#xff0c;看到标题为This AI newsletter is all you need #41的邮件——它没用夸张的“爆炸性突破”“颠覆认知”这类词&#xff0c;也没塞满emoji和感叹号&#xff0c;但你还是点了开…...