当前位置: 首页 > 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;从而最大限度地减少了从数据库或其他慢速存储层重复获取数据的需要。 本教程的目标是手把手教你如…...

零基础入门:REX-UniNLU中文NLP系统保姆级安装与使用指南

零基础入门&#xff1a;REX-UniNLU中文NLP系统保姆级安装与使用指南 1. 为什么选择REX-UniNLU系统 如果你正在寻找一个简单易用但功能强大的中文自然语言处理工具&#xff0c;REX-UniNLU可能是你的理想选择。这个系统最大的特点就是"开箱即用"——不需要复杂的配置…...

一台电脑畅玩多人游戏:Nucleus Co-Op分屏神器完全指南

一台电脑畅玩多人游戏&#xff1a;Nucleus Co-Op分屏神器完全指南 【免费下载链接】nucleuscoop Starts multiple instances of a game for split-screen multiplayer gaming! 项目地址: https://gitcode.com/gh_mirrors/nu/nucleuscoop 还在为和朋友一起玩游戏需要多台…...

造相-Z-Image-Turbo亚洲美女LoRA入门指南:开箱即用的图片生成服务

造相-Z-Image-Turbo亚洲美女LoRA入门指南&#xff1a;开箱即用的图片生成服务 1. 服务概览与核心价值 造相-Z-Image-Turbo亚洲美女LoRA是一个基于Z-Image-Turbo模型的图片生成Web服务&#xff0c;特别集成了laonansheng/Asian-beauty-Z-Image-Turbo-Tongyi-MAI-v1.0 LoRA模型…...

零基础上手Qwen3-4B:无需编程,快速搭建你的专属AI聊天机器人

零基础上手Qwen3-4B&#xff1a;无需编程&#xff0c;快速搭建你的专属AI聊天机器人 1. 为什么选择Qwen3-4B-Instruct-2507&#xff1f; 想象一下&#xff0c;你正在寻找一个能快速响应、专注文本处理的AI助手。市面上大多数模型要么体积庞大运行缓慢&#xff0c;要么功能繁杂…...

快速上手Qwen-Image-2512-ComfyUI:ComfyUI界面操作,小白也能轻松出图

快速上手Qwen-Image-2512-ComfyUI&#xff1a;ComfyUI界面操作&#xff0c;小白也能轻松出图 1. 准备工作与环境搭建 1.1 了解Qwen-Image-2512-ComfyUI Qwen-Image-2512-ComfyUI是阿里开源的最新图像生成模型&#xff0c;通过ComfyUI图形界面让AI绘画变得简单直观。这个镜像…...

UniApp实战:搞定Android全版本MAC地址获取(附完整代码与避坑指南)

UniApp跨平台开发中Android设备MAC地址获取的深度实践 在移动应用开发领域&#xff0c;设备唯一标识符的获取一直是个既基础又复杂的问题。特别是在Android生态系统中&#xff0c;随着系统版本的迭代&#xff0c;获取MAC地址的方式经历了多次变化&#xff0c;这给开发者带来了…...

文脉定序完整指南:从模型下载、镜像构建、服务启动到监控告警全流程

文脉定序完整指南&#xff1a;从模型下载、镜像构建、服务启动到监控告警全流程 如果你正在构建一个智能问答系统或知识库&#xff0c;一定遇到过这样的烦恼&#xff1a;系统能搜出一堆看似相关的文档&#xff0c;但最精准、最贴切的答案往往不在最前面。用户需要手动翻找&…...

解放词库自由:跨平台词库迁移的全场景解决方案

解放词库自由&#xff1a;跨平台词库迁移的全场景解决方案 【免费下载链接】imewlconverter ”深蓝词库转换“ 一款开源免费的输入法词库转换程序 项目地址: https://gitcode.com/gh_mirrors/im/imewlconverter 当你更换新手机时&#xff0c;是否曾为输入法里积累多年的…...

基于条件风险价值CVaR的微网/虚拟电厂多场景随机规划 摘要:构建了含风、光、燃、储的微网/虚...

基于条件风险价值CVaR的微网/虚拟电厂多场景随机规划 摘要&#xff1a;构建了含风、光、燃、储的微网/虚拟电厂优化调度模型&#xff0c;在此基础上&#xff0c;考虑多个风光出力场景&#xff0c;构建了微网随机优化调度模型&#xff0c;并在此基础上&#xff0c;基于条件风险价…...

伏羲天气预报可信AI:预报结果置信度输出、不确定性传播与可视化

伏羲天气预报可信AI&#xff1a;预报结果置信度输出、不确定性传播与可视化 1. 引言&#xff1a;天气预报&#xff0c;我们到底能信多少&#xff1f; “明天会下雨吗&#xff1f;”这是我们每天都会问的问题。传统的天气预报会告诉你一个概率&#xff0c;比如“降水概率70%”…...