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

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 在需要身份验证时会执行以下操作:

  1. 首次提交凭据时:Git 会询问你的用户名和密码,并将它们保存到 ~/.git-credentials 文件中。
  2. 后续操作时: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 个提交,并将状态恢复到之前的提交。

注意事项

  1. --hard 操作是不可逆的

    • 使用 --hard 后,所有未提交的更改会被丢弃,无法恢复。
    • 如果误操作,可以尝试通过 git reflog 恢复:

      git reflog git reset --hard <commit-hash>

  2. 不影响远程仓库

    • git reset 只会影响本地仓库的状态。
    • 如果远程仓库已经有提交记录,建议用 git revert 来撤销。

git resetgit checkoutgit revert 的区别

功能git resetgit checkoutgit revert
用途修改历史提交、撤销更改切换分支或恢复单个文件生成一个新的提交,撤销旧的提交
是否影响历史是(可以删除提交记录)
是否影响远程否(除非强制推送)否(会生成新提交记录)

通过 Git Bash 创建的文件夹会默认保存在 当前工作目录 下。当前工作目录的位置取决于你打开 Git Bash 时的起始路径或切换到的路径。


确定文件夹创建位置的方法

  1. 查看当前工作目录
    打开 Git Bash 后,输入以下命令查看当前工作目录:

    bash

    复制代码

    pwd

    这将返回当前所在的路径,例如:

    /c/Users/YourUsername

  2. 切换到不同目录后再创建
    如果你希望在特定路径下创建文件夹,可以先使用 cd 命令切换到目标路径:

    cd /c/Users/YourUsername/Documents mkdir myfolder

    这将在 Documents 文件夹中创建一个名为 myfolder 的文件夹。

  3. 检查默认起始路径
    默认情况下,Git Bash 打开时的起始路径通常是你的用户主目录:

    /c/Users/YourUsername

    你可以在这里找到通过 Git Bash 创建的文件夹。

  4. 更改默认起始路径

    如果你希望 Git Bash 打开时使用不同的默认路径,可以进行如下设置:

  5. 打开 Git Bash 的快捷方式。

  6. 右键点击,选择 属性
  7. 起始位置 (Start in) 一栏,输入你希望的默认路径,例如:

    C:\Users\YourUsername\Documents

五、VSCode使用Git 

相关文章:

Git 从入门到精通

一、环境配置 下载地址&#xff1a;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认证的域名注册商&#xff0c;自2002年成立以来&#xff0c;服务于全球108个国家和地区的客户&#xff0c;为数以万计的客户提供简洁&#xff0c;优惠&#xff0c;安全的域名注册以及管理服务。 Dynadot平台操作教程索引&#xff08;包括域名邮…...

Java虚拟机(Java Virtual Machine,JVM)

一、Java 虚拟机 Java 虚拟机&#xff08;Java Virtual Machine, JVM&#xff09;是运行 Java 字节码的虚拟机。它是Java平台的核心组件之一&#xff0c;使得Java程序具有 一次编写&#xff0c;到处运行&#xff08;Write Once, Run Anywhere&#xff09; 的特性。 JVM 有针对…...

[免费]微信小程序(高校就业)招聘系统(Springboot后端+Vue管理端)【论文+源码+SQL脚本】

大家好&#xff0c;我是java1234_小锋老师&#xff0c;看到一个不错的微信小程序(高校就业)招聘系统(Springboot后端Vue管理端)&#xff0c;分享下哈。 项目视频演示 【免费】微信小程序(高校就业)招聘系统(Springboot后端Vue管理端) Java毕业设计_哔哩哔哩_bilibili 项目介绍…...

TCP Analysis Flags 之 TCP Retransmission

前言 默认情况下&#xff0c;Wireshark 的 TCP 解析器会跟踪每个 TCP 会话的状态&#xff0c;并在检测到问题或潜在问题时提供额外的信息。在第一次打开捕获文件时&#xff0c;会对每个 TCP 数据包进行一次分析&#xff0c;数据包按照它们在数据包列表中出现的顺序进行处理。可…...

#Phi-4:微软 14B 参数开源模型,性能匹敌 OpenAI GPT-4o-mini,现已登陆 Ollama

Phi-4&#xff1a;微软 14B 参数开源模型&#xff0c;性能匹敌 OpenAI GPT-4o-mini&#xff0c;现已登陆 Ollama 一、Phi-4 模型概述 &#xff08;一&#xff09;模型参数与规模 Phi-4 是微软推出的一款小型语言模型&#xff0c;拥有 140 亿参数。虽然参数量相对较小&#xf…...

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 注解中的一个注解&#xff0c;用于定义 API 文档中的联系信息。通过 Contact 注解&#xff0c;你可以指定 API 维护者的联系方式&#xff0c;例如电子邮件、URL 或名称等。 源代码 package io.swagger.v3.oas.annotations.info;import …...

如何监听Vuex数据的变化?

使用watch方法监听Vuex state的变化&#xff1a; // 在 Vue 组件中 this.$store.watch((state) > state.someState,(newValue, oldValue) > {console.log(someState changed from, oldValue, to, newValue);} );使用subscribe方法监听mutation的变化&#xff1a; // 在…...

Redis 优化秒杀(异步秒杀)

目录 为什么需要异步秒杀 异步优化的核心逻辑是什么&#xff1f; 阻塞队列的特点是什么&#xff1f; Lua脚本在这里的作用是什么&#xff1f; 异步调用创建订单的具体逻辑是什么&#xff1f; 为什么要用代理对象proxy调用createVoucherOrder方法&#xff1f; 对于代码的详细…...

前端中常用的单位度量(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&#xff08;十三&#xff09; 目录 前言 一、现状分析 二、解决思路 1.应用场景网络结构图 2.数据发送流程 3.数据接收流程 4.用到的模块 1.CAN网络速率及时间片分配 2.CAN网络消息ID组成 3.设备节点定义 4.数据格式说明…...

从零开始:使用VSCode搭建Python数据科学开发环境

引言 在数据科学领域&#xff0c;一个高效、稳定的开发环境是成功的关键。本文将详细介绍如何使用Visual Studio Code搭建一个完整的Python数据科学开发环境。通过本指南&#xff0c;您将学会&#xff1a; 安装和配置VSCode&#xff0c;包括基本设置和快捷键配置设置Python开…...

C#语言的字符串处理

C#语言的字符串处理 引言 在现代编程中&#xff0c;字符串处理是一项重要的技能&#xff0c;几乎在所有编程语言中都有应用。C#语言作为一种强类型的、面向对象的编程语言&#xff0c;提供了丰富的字符串处理功能。这使得开发人员能够方便地进行文本操作&#xff0c;比如字符…...

《安富莱嵌入式周报》第348期:开源低功耗测试仪,开源创意万用表,续航100-300小时,开源PCB电机,自制shell和网络协议栈,开源水培自动化系统

周报汇总地址&#xff1a;嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - Powered by Discuz! 视频版&#xff1a; https://www.bilibili.com/video/BV1Tzr9Y3EQ7/ 《安富莱嵌入式周报》第348期&#xff1a;开源低功…...

npm发布流程说明

一、进入要发布的项目根目录&#xff0c;初始化为npm包 npm initname&#xff1a;最重要的字段之一&#xff0c;项目名称&#xff08;少于214个字节&#xff09;。没有name和version不能进行安装&#xff1b; version&#xff1a;最重要的字段之一&#xff0c;项目版本。没有n…...

缓存-文章目录

关于缓存系列文章&#xff1a; 缓存学习总结1&#xff08;缓存分类&#xff09; 缓存学习总结2&#xff08;服务器本地缓存&#xff09; 缓存学习总结3&#xff08;服务器内存缓存&#xff09;推荐使用 缓存学习总结4&#xff08;分布式缓存&#xff09; 关于redis系列文章…...

LeetCode 3297.统计重新排列后包含另一个字符串的子字符串数目 I:滑动窗口

【LetMeFly】3297.统计重新排列后包含另一个字符串的子字符串数目 I&#xff1a;滑动窗口 力扣题目链接&#xff1a;https://leetcode.cn/problems/count-substrings-that-can-be-rearranged-to-contain-a-string-i/ 给你两个字符串 word1 和 word2 。 如果一个字符串 x 重新…...

如何在 Ubuntu 24.04 上安装 Memcached 服务器教程

简介 Memcached 是一个高性能、分布式的内存缓存系统&#xff0c;旨在通过减少数据库负载来加速动态 Web 应用程序。它通过将数据和对象缓存在 RAM 中来实现这一点&#xff0c;从而最大限度地减少了从数据库或其他慢速存储层重复获取数据的需要。 本教程的目标是手把手教你如…...

基于算法竞赛的c++编程(28)结构体的进阶应用

结构体的嵌套与复杂数据组织 在C中&#xff0c;结构体可以嵌套使用&#xff0c;形成更复杂的数据结构。例如&#xff0c;可以通过嵌套结构体描述多层级数据关系&#xff1a; struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...

超短脉冲激光自聚焦效应

前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应&#xff0c;这是一种非线性光学现象&#xff0c;主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场&#xff0c;对材料产生非线性响应&#xff0c;可能…...

iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘

美国西海岸的夏天&#xff0c;再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至&#xff0c;这不仅是开发者的盛宴&#xff0c;更是全球数亿苹果用户翘首以盼的科技春晚。今年&#xff0c;苹果依旧为我们带来了全家桶式的系统更新&#xff0c;包括 iOS 26、iPadOS 26…...

2025年能源电力系统与流体力学国际会议 (EPSFD 2025)

2025年能源电力系统与流体力学国际会议&#xff08;EPSFD 2025&#xff09;将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会&#xff0c;EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...

前端导出带有合并单元格的列表

// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...

Java入门学习详细版(一)

大家好&#xff0c;Java 学习是一个系统学习的过程&#xff0c;核心原则就是“理论 实践 坚持”&#xff0c;并且需循序渐进&#xff0c;不可过于着急&#xff0c;本篇文章推出的这份详细入门学习资料将带大家从零基础开始&#xff0c;逐步掌握 Java 的核心概念和编程技能。 …...

Spring AI与Spring Modulith核心技术解析

Spring AI核心架构解析 Spring AI&#xff08;https://spring.io/projects/spring-ai&#xff09;作为Spring生态中的AI集成框架&#xff0c;其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似&#xff0c;但特别为多语…...

使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度

文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...

解析奥地利 XARION激光超声检测系统:无膜光学麦克风 + 无耦合剂的技术协同优势及多元应用

在工业制造领域&#xff0c;无损检测&#xff08;NDT)的精度与效率直接影响产品质量与生产安全。奥地利 XARION开发的激光超声精密检测系统&#xff0c;以非接触式光学麦克风技术为核心&#xff0c;打破传统检测瓶颈&#xff0c;为半导体、航空航天、汽车制造等行业提供了高灵敏…...

前端高频面试题2:浏览器/计算机网络

本专栏相关链接 前端高频面试题1&#xff1a;HTML/CSS 前端高频面试题2&#xff1a;浏览器/计算机网络 前端高频面试题3&#xff1a;JavaScript 1.什么是强缓存、协商缓存&#xff1f; 强缓存&#xff1a; 当浏览器请求资源时&#xff0c;首先检查本地缓存是否命中。如果命…...