Git 从入门到精通
一、环境配置
下载地址:https://git-scm.com/downloads/
二、用户配置
找到git bash
git --version 查看当前版本
git config --global user.name szhipeng625 设置用户名
git config --global user.email szhipeng625@gmail.com 设置邮箱
git config --global --list 查看配置环境
git config --global credential.helper store 这段代码的作用是配置 Git 的全局凭据助手为 store 模式。这种模式会将你的 Git 凭据(如用户名和密码)以明文的形式存储在一个文件中,通常位于用户主目录下的 ~/.git-credentials 文件中。
当你配置了这个助手后,Git 在需要身份验证时会执行以下操作:
- 首次提交凭据时:Git 会询问你的用户名和密码,并将它们保存到
~/.git-credentials文件中。 - 后续操作时:Git 会直接从
~/.git-credentials中读取已保存的凭据,而无需再次询问用户名和密码。
三、创建仓库
创建仓库有两种方式。1.再本地创建一个仓库 git init 2.克隆一个远程仓库 git clone
1.mkdir learn-git 创建目录。
cd learn-git 进入文件并 git init 初始化本地仓库, cd .git 进入该文件下 ls -altr查看仓库的配置文件
含有.git就说明他是一个仓库
2. 拉取远程仓库 进入文件下点击git clong + 仓库即可
四、工作方式


git status 查看仓库当中文件的状态
git reset 的作用
git reset 是 Git 中一个非常强大的命令,用于撤销更改或调整当前分支的状态。它可以在不同的场景下使用,比如修改提交记录、撤销文件的更改、或者调整 HEAD 指针的位置。
git reset 的基本语法
git reset [<mode>] [<commit>]
-
<mode>:--soft:仅移动HEAD,保留暂存区和工作区的更改。--mixed(默认):移动HEAD,重置暂存区,但保留工作区的更改。--hard:移动HEAD,同时重置暂存区和工作区(所有更改都会丢失)。
-
<commit>:指定需要重置到的目标提交,可以是提交哈希值、分支名、HEAD 等。
git reset 的三种模式
git reset 会影响三个区域:
- HEAD:当前分支的指针。
- 暂存区(Stage/Index)
- 工作区(Working Directory)
1. --soft 模式
仅移动 HEAD 指针到指定提交,暂存区和工作区的更改保持不变。
用途:用来修改最近一次的提交,但保留更改以便重新提交。
git reset --soft HEAD~1
- 将 HEAD 指针回退到上一个提交。
- 原来的提交内容会保持在暂存区,你可以重新提交或修改。
2. --mixed 模式(默认模式)
移动 HEAD 指针到指定提交,同时将暂存区的更改撤销,但工作区的更改保留。
用途:撤销提交并解暂存文件,方便重新编辑。
git reset HEAD~1
- 将 HEAD 指针回退到上一个提交。
- 暂存区的文件被撤销,但文件仍保留在工作区。
3. --hard 模式
移动 HEAD 指针到指定提交,同时清空暂存区和工作区的更改。
用途:彻底清除所有更改,恢复到某个提交的状态。
git reset --hard HEAD~1
- 将 HEAD 指针回退到上一个提交。
- 暂存区和工作区的内容都会被还原到指定提交的状态,无法恢复。
常用场景
1. 撤销最后一次提交但保留更改
git reset --soft HEAD~1
- 用于将提交回滚到暂存区,但保留所有更改。
- 适合发现提交错误后重新提交。
2. 撤销暂存的文件
bash
复制代码
git reset HEAD file.txt
- 用于将
file.txt从暂存区撤回到工作区,但不会影响文件内容。
3. 恢复到指定提交
git reset --hard <commit>
- 用于将分支状态恢复到
<commit>指定的提交,并清除所有暂存区和工作区的更改。
4. 清空最近的多个提交
git reset --hard HEAD~3
- 删除最近的 3 个提交,并将状态恢复到之前的提交。
注意事项
-
--hard操作是不可逆的:- 使用
--hard后,所有未提交的更改会被丢弃,无法恢复。 - 如果误操作,可以尝试通过
git reflog恢复:git reflog git reset --hard <commit-hash>
- 使用
-
不影响远程仓库:
git reset只会影响本地仓库的状态。- 如果远程仓库已经有提交记录,建议用
git revert来撤销。
git reset 和 git checkout、git revert 的区别
| 功能 | git reset | git checkout | git revert |
|---|---|---|---|
| 用途 | 修改历史提交、撤销更改 | 切换分支或恢复单个文件 | 生成一个新的提交,撤销旧的提交 |
| 是否影响历史 | 是(可以删除提交记录) | 否 | 否 |
| 是否影响远程 | 否(除非强制推送) | 否 | 否(会生成新提交记录) |
通过 Git Bash 创建的文件夹会默认保存在 当前工作目录 下。当前工作目录的位置取决于你打开 Git Bash 时的起始路径或切换到的路径。
确定文件夹创建位置的方法
-
查看当前工作目录
打开 Git Bash 后,输入以下命令查看当前工作目录:bash
复制代码
pwd这将返回当前所在的路径,例如:
/c/Users/YourUsername -
切换到不同目录后再创建
如果你希望在特定路径下创建文件夹,可以先使用cd命令切换到目标路径:cd /c/Users/YourUsername/Documents mkdir myfolder这将在
Documents文件夹中创建一个名为myfolder的文件夹。 -
检查默认起始路径
默认情况下,Git Bash 打开时的起始路径通常是你的用户主目录:/c/Users/YourUsername你可以在这里找到通过 Git Bash 创建的文件夹。
-
更改默认起始路径
如果你希望 Git Bash 打开时使用不同的默认路径,可以进行如下设置:
-
打开 Git Bash 的快捷方式。
- 右键点击,选择
属性。 - 在
起始位置(Start in) 一栏,输入你希望的默认路径,例如:C:\Users\YourUsername\Documents
五、VSCode使用Git

相关文章:
Git 从入门到精通
一、环境配置 下载地址:https://git-scm.com/downloads/ 二、用户配置 找到git bash git --version 查看当前版本 git config --global user.name szhipeng625 设置用户名 git config --global user.email szhipeng625gmail.com 设置邮箱 git config --global …...
vue3使用vue3-video-play播放m3u8视频
1.安装vue3-video-play npm install vue3-video-play --save2.在组件中使用 import vue3-video-play/dist/style.css; import VideoPlay from vue3-video-play;// 视频配置项 const options reactive({src: https://test-streams.mux.dev/x36xhzz/x36xhzz.m3u8, //视频源mute…...
使用API有效率地管理Dynadot域名,为文件夹中的域名统一设置电子邮件转发
关于Dynadot Dynadot是通过ICANN认证的域名注册商,自2002年成立以来,服务于全球108个国家和地区的客户,为数以万计的客户提供简洁,优惠,安全的域名注册以及管理服务。 Dynadot平台操作教程索引(包括域名邮…...
Java虚拟机(Java Virtual Machine,JVM)
一、Java 虚拟机 Java 虚拟机(Java Virtual Machine, JVM)是运行 Java 字节码的虚拟机。它是Java平台的核心组件之一,使得Java程序具有 一次编写,到处运行(Write Once, Run Anywhere) 的特性。 JVM 有针对…...
[免费]微信小程序(高校就业)招聘系统(Springboot后端+Vue管理端)【论文+源码+SQL脚本】
大家好,我是java1234_小锋老师,看到一个不错的微信小程序(高校就业)招聘系统(Springboot后端Vue管理端),分享下哈。 项目视频演示 【免费】微信小程序(高校就业)招聘系统(Springboot后端Vue管理端) Java毕业设计_哔哩哔哩_bilibili 项目介绍…...
TCP Analysis Flags 之 TCP Retransmission
前言 默认情况下,Wireshark 的 TCP 解析器会跟踪每个 TCP 会话的状态,并在检测到问题或潜在问题时提供额外的信息。在第一次打开捕获文件时,会对每个 TCP 数据包进行一次分析,数据包按照它们在数据包列表中出现的顺序进行处理。可…...
#Phi-4:微软 14B 参数开源模型,性能匹敌 OpenAI GPT-4o-mini,现已登陆 Ollama
Phi-4:微软 14B 参数开源模型,性能匹敌 OpenAI GPT-4o-mini,现已登陆 Ollama 一、Phi-4 模型概述 (一)模型参数与规模 Phi-4 是微软推出的一款小型语言模型,拥有 140 亿参数。虽然参数量相对较小…...
JSON头文件调用
除了传统的读写操作,现在流行的json文件读取保存,还是非常方便的. 头文件放在源代码中,在调用处添加引用路径 #include “…/ConsoleApplication1/include/json.hpp” using json nlohmann::json; 数据结构例子: // 声明Person类 class Person { public: std::string name; i…...
Swagger学习⑭——@Contact注解
介绍 Contact 是 Swagger/OpenAPI 3.0 注解中的一个注解,用于定义 API 文档中的联系信息。通过 Contact 注解,你可以指定 API 维护者的联系方式,例如电子邮件、URL 或名称等。 源代码 package io.swagger.v3.oas.annotations.info;import …...
如何监听Vuex数据的变化?
使用watch方法监听Vuex state的变化: // 在 Vue 组件中 this.$store.watch((state) > state.someState,(newValue, oldValue) > {console.log(someState changed from, oldValue, to, newValue);} );使用subscribe方法监听mutation的变化: // 在…...
Redis 优化秒杀(异步秒杀)
目录 为什么需要异步秒杀 异步优化的核心逻辑是什么? 阻塞队列的特点是什么? Lua脚本在这里的作用是什么? 异步调用创建订单的具体逻辑是什么? 为什么要用代理对象proxy调用createVoucherOrder方法? 对于代码的详细…...
前端中常用的单位度量(px,rpx,rem,em,vw,vh)+图片自适应
文章目录 前端中常用的单位度量vw/vh 的场景应用px/rem/em 之间的转换关系项目中的rem 应用根元素 font-size 设置为16px 的应用惯例自适应之图片应用1. 使用 max-width 和 max-height2. 使用 object-fit 属性3. 使用 background-image 模拟图片展示 前端中常用的单位度量 px&…...
STM32之一种双通路CAN总线消息备份冗余处理方法(十三)
STM32F407 系列文章 - Dual-CANBus-ProMethod(十三) 目录 前言 一、现状分析 二、解决思路 1.应用场景网络结构图 2.数据发送流程 3.数据接收流程 4.用到的模块 1.CAN网络速率及时间片分配 2.CAN网络消息ID组成 3.设备节点定义 4.数据格式说明…...
从零开始:使用VSCode搭建Python数据科学开发环境
引言 在数据科学领域,一个高效、稳定的开发环境是成功的关键。本文将详细介绍如何使用Visual Studio Code搭建一个完整的Python数据科学开发环境。通过本指南,您将学会: 安装和配置VSCode,包括基本设置和快捷键配置设置Python开…...
C#语言的字符串处理
C#语言的字符串处理 引言 在现代编程中,字符串处理是一项重要的技能,几乎在所有编程语言中都有应用。C#语言作为一种强类型的、面向对象的编程语言,提供了丰富的字符串处理功能。这使得开发人员能够方便地进行文本操作,比如字符…...
《安富莱嵌入式周报》第348期:开源低功耗测试仪,开源创意万用表,续航100-300小时,开源PCB电机,自制shell和网络协议栈,开源水培自动化系统
周报汇总地址:嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - Powered by Discuz! 视频版: https://www.bilibili.com/video/BV1Tzr9Y3EQ7/ 《安富莱嵌入式周报》第348期:开源低功…...
npm发布流程说明
一、进入要发布的项目根目录,初始化为npm包 npm initname:最重要的字段之一,项目名称(少于214个字节)。没有name和version不能进行安装; version:最重要的字段之一,项目版本。没有n…...
缓存-文章目录
关于缓存系列文章: 缓存学习总结1(缓存分类) 缓存学习总结2(服务器本地缓存) 缓存学习总结3(服务器内存缓存)推荐使用 缓存学习总结4(分布式缓存) 关于redis系列文章…...
LeetCode 3297.统计重新排列后包含另一个字符串的子字符串数目 I:滑动窗口
【LetMeFly】3297.统计重新排列后包含另一个字符串的子字符串数目 I:滑动窗口 力扣题目链接:https://leetcode.cn/problems/count-substrings-that-can-be-rearranged-to-contain-a-string-i/ 给你两个字符串 word1 和 word2 。 如果一个字符串 x 重新…...
如何在 Ubuntu 24.04 上安装 Memcached 服务器教程
简介 Memcached 是一个高性能、分布式的内存缓存系统,旨在通过减少数据库负载来加速动态 Web 应用程序。它通过将数据和对象缓存在 RAM 中来实现这一点,从而最大限度地减少了从数据库或其他慢速存储层重复获取数据的需要。 本教程的目标是手把手教你如…...
【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型
摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...
智慧医疗能源事业线深度画像分析(上)
引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...
React第五十七节 Router中RouterProvider使用详解及注意事项
前言 在 React Router v6.4 中,RouterProvider 是一个核心组件,用于提供基于数据路由(data routers)的新型路由方案。 它替代了传统的 <BrowserRouter>,支持更强大的数据加载和操作功能(如 loader 和…...
Java如何权衡是使用无序的数组还是有序的数组
在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...
2.Vue编写一个app
1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...
前端开发面试题总结-JavaScript篇(一)
文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包(Closure)?闭包有什么应用场景和潜在问题?2.解释 JavaScript 的作用域链(Scope Chain) 二、原型与继承3.原型链是什么?如何实现继承&a…...
k8s业务程序联调工具-KtConnect
概述 原理 工具作用是建立了一个从本地到集群的单向VPN,根据VPN原理,打通两个内网必然需要借助一个公共中继节点,ktconnect工具巧妙的利用k8s原生的portforward能力,简化了建立连接的过程,apiserver间接起到了中继节…...
高防服务器能够抵御哪些网络攻击呢?
高防服务器作为一种有着高度防御能力的服务器,可以帮助网站应对分布式拒绝服务攻击,有效识别和清理一些恶意的网络流量,为用户提供安全且稳定的网络环境,那么,高防服务器一般都可以抵御哪些网络攻击呢?下面…...
Linux --进程控制
本文从以下五个方面来初步认识进程控制: 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程,创建出来的进程就是子进程,原来的进程为父进程。…...
Fabric V2.5 通用溯源系统——增加图片上传与下载功能
fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...
