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

Git常用指令大全详解

Git常用指令大全详解

Git,作为目前最流行的分布式版本控制系统,其强大的功能和灵活性为开发者提供了极大的便利。无论是个人项目还是团队协作,Git都扮演着不可或缺的角色。本文将详细总结Git的常用指令,帮助大家更好地掌握这一工具。

在这里插入图片描述

一、Git基础配置

  1. 设置用户信息

    git config --global user.name "你的用户名"
    git config --global user.email "你的邮箱"
    

    配置全局的用户名和邮箱,这些信息会被记录到每次提交中。

  2. 检查配置

    git config --list
    

    查看当前Git的配置信息。

  3. 设置SSH密钥

    生成SSH密钥(默认路径为~/.ssh/id_rsa~/.ssh/id_rsa.pub):

    ssh-keygen -t rsa -b 4096 -C "你的邮箱"
    

    然后,将公钥(id_rsa.pub)添加到你的Git服务器(如GitHub、Gitee等)上。

二、Git仓库操作

  1. 初始化仓库

    git init
    

    在当前目录下初始化一个新的Git仓库。

  2. 克隆仓库

    git clone <repository-url>
    

    克隆远程仓库到本地。

  3. 查看仓库状态

    git status
    

    查看当前工作目录的状态,包括已修改、未提交等信息。

三、文件操作

  1. 添加文件到暂存区

    git add <file>
    

    添加指定文件到暂存区。如果要添加所有修改过的文件,可以使用git add .

  2. 提交文件到仓库

    git commit -m "提交信息"
    

    将暂存区的文件提交到本地仓库。

  3. 查看提交历史

    git log
    

    查看提交历史记录。

  4. 撤销修改

    • 撤销工作区的修改(未添加到暂存区):

      git checkout -- <file>
      
    • 撤销暂存区的修改(已添加到暂存区但未提交):

      git reset HEAD <file>
      
    • 撤销已提交的修改(通过版本回退):

      git reset --hard <commit-id>
      

四、分支操作

  1. 查看分支

    git branch
    

    查看本地分支列表。加上-r参数可以查看远程分支。

  2. 创建分支

    git branch <branch-name>
    

    创建新的本地分支。

  3. 切换分支

    git checkout <branch-name>
    

    切换到指定分支。在Git 2.23及以后版本中,可以使用git switch <branch-name>来切换分支。

  4. 合并分支

    git merge <branch-name>
    

    将指定分支合并到当前分支。

  5. 删除分支

    git branch -d <branch-name>
    

    删除本地分支。如果分支还没有被合并,需要使用-D参数强制删除。

  6. 推送分支到远程仓库

    git push origin <branch-name>
    

    将本地分支推送到远程仓库。

  7. 拉取远程分支到本地

    git fetch origin <branch-name>
    git checkout -b <local-branch-name> origin/<remote-branch-name>
    

    先从远程仓库拉取分支信息,然后在本地创建并切换到新分支,同时关联到远程分支。

五、远程仓库操作

  1. 查看远程仓库

    git remote -v
    

    查看当前配置的远程仓库列表。

  2. 添加远程仓库

    git remote add <repository-name> <repository-url>
    

    添加新的远程仓库。

  3. 推送本地修改到远程仓库

    git push <repository-name> <branch-name>
    

    将本地分支的修改推送到远程仓库。

  4. 从远程仓库拉取更新

    git pull <repository-name> <branch-name>
    

    从远程仓库拉取指定分支的更新并合并到当前分支。

  5. 移除远程仓库

    git remote remove <repository-name>
    

    移除指定的远程仓库配置。

六、标签操作

  1. 创建标签

    git tag <tag-name>
    

    在当前分支的最新提交上创建一个标签。

  2. 查看标签

    git tag
    

    查看所有标签列表。

  3. 推送标签到远程仓库

    git push origin <tag-name>
    

    将指定标签推送到远程仓库。

  4. 删除标签

    • 删除本地标签:

      git tag -d <tag-name>
      
    • 删除远程标签:

      git push origin :refs/tags/<tag-name>
      

七、其他高级操作

  1. 查看配置

    git config --list
    

    查看Git的全局和仓库级配置。

  2. 设置别名

    git config --global alias.<alias-name> <command>
    

    为Git命令设置别名,以便简化使用。

  3. 存储工作进度

    git stash
    

    将当前工作区的修改临时存储起来,以便切换到其他分支或进行其他操作。

  4. 恢复存储的工作进度

    git stash pop
    

    恢复最近一次存储的工作进度。

  5. 清理未跟踪的文件和目录

    git clean -fd
    

    清理工作区中未跟踪的文件和目录。

结语

本文详细总结了Git的常用指令,涵盖了基础配置、仓库操作、文件操作、分支操作、远程仓库操作、标签操作以及其他高级操作。希望这些内容能够帮助大家更好地掌握Git,提高开发效率。当然,Git的功能远不止于此,还有更多的高级特性和命令等待大家去探索和学习。

相关文章:

Git常用指令大全详解

Git常用指令大全详解 Git&#xff0c;作为目前最流行的分布式版本控制系统&#xff0c;其强大的功能和灵活性为开发者提供了极大的便利。无论是个人项目还是团队协作&#xff0c;Git都扮演着不可或缺的角色。本文将详细总结Git的常用指令&#xff0c;帮助大家更好地掌握这一工…...

面试真题-TCP的三次握手

TCP的基础知识 TCP头部 面试题&#xff1a;TCP的头部是多大&#xff1f; TCP&#xff08;传输控制协议&#xff09;的头部通常是固定的20个字节长&#xff0c;但是根据TCP选项&#xff08;Options&#xff09;的不同&#xff0c;这个长度可以扩展。TCP头部包含了许多关键的字…...

LabVIEW多语言支持优化

遇到的LabVIEW多语言支持问题&#xff0c;特别是德文显示乱码以及系统区域设置导致的异常&#xff0c;可能是由编码问题或区域设置不匹配引起的。以下是一些可能的原因及解决方案&#xff1a; 问题原因&#xff1a; 编码问题&#xff1a;LabVIEW内部使用UTF-8编码&#xff0c;但…...

身份证阅读器API模式 VUE Dorado7

VUE 新框架 // 身份证扫描 readIdCard(type) {// 1.连接axios.get(http://localhost:19196/openDevice).then(res > {if (res.data.resultFlag 0) {// 2.读卡axios.get(http://localhost:19196/readCard).then((res) > {if (res.data.resultFlag 0) {// this.$message…...

北京通州自闭症学校推荐:打造和谐学习氛围,助力孩子成长

在北京通州&#xff0c;寻找一所能够全面关注自闭症儿童成长、提供高效康复服务的学校&#xff0c;星贝育园无疑是众多家庭的首选。作为全国知名的广泛性发育障碍全托寄宿制儿童康复训练机构&#xff0c;星贝育园以其专业的康复方法、强大的师资力量和贴心的服务&#xff0c;为…...

openstack之cinder介绍

概念 cinder 为虚拟机提供管理块存储服务。支持的文件系统&#xff1a;lvm、iscsi、nfs、san、RBD 组件构成及功能介绍 cinder api&#xff1a;在控制节点运行&#xff0c;管理服务的接口&#xff0c;被命令行、其他组件调用&#xff1b; cinder scheduler&#xff1a;类似n…...

第k个排列 - 华为OD统一考试(E卷)

2024华为OD机试&#xff08;E卷D卷C卷&#xff09;最新题库【超值优惠】Java/Python/C合集 题目描述 给定参数n&#xff0c;从1到n会有n个整数:1,2,3,.,n&#xff0c;这n个数字共有 n!种排列。按大小顺序升序列出所有排列情况&#xff0c;并-一标记&#xff0c;当n3时,所有排列…...

清理C盘缓存,电脑缓存清理怎么一键删除,操作简单的教程

清理C盘缓存是维护电脑性能、释放磁盘空间的重要步骤。以下是一个详细且操作简单的教程&#xff0c;旨在帮助用户通过一键或几步操作完成C盘缓存的清理。 1.使用Windows系统自带工具 磁盘清理 1.打开磁盘清理工具&#xff1a; -按下“WinE”打开文件资源管理器…...

网络安全-ssrf

目录 一、环境 二、漏洞讲解 三、靶场讲解 四、可利用协议 4.1 dict协议 4.2 file协议 4.3 gopher协议 五、看一道ctf题吧&#xff08;长亭的比赛&#xff09; 5.1环境 5.2开始测试 ​编辑 一、环境 pikachu&#xff0c;这里我直接docker拉取的&#xff0c;我只写原…...

c++刷题

17.电话号码的组合 来源于题解思路&#xff1a; 继承 CC14 KiKi设计类继承 #include <iostream> #include <memory> using namespace std; class Shape{ private:int x;int y; };class Rectangle:public Shape { public:Rectangle(int length,int width):Shape…...

艾丽卡的区块链英语小课堂

系列文章目录 复习昨日 文章目录 系列文章目录前言1.opaque2.deduplicates3.references4,intermix5.serializing6.streamline7.robust8.flexibility9.exotic10.nevertheless11. realize12.flavor13.subtract14.attach15.award 前言 欢迎来到艾丽卡的区块链英语小课堂&#x…...

计算机毕业设计 公寓出租系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…...

eclipse使用 笔记02

创建一个项目&#xff1a; 【File-->New-->Dynamic Web Project】 进入页面&#xff1a; Project name为项目命名 Target runtime&#xff1a;选择自己所对应的版本 finish创建成功&#xff1a; 创建成功后的删除操作&#xff1a; 创建前端界面&#xff1a; 【注意&a…...

基于C++实现(MFC)职工工作量统计系统

题目&#xff1a;职工工作量统计系统设计 1、问题描述 职工包括姓名、职工号、性别、年龄、所在部门、联系方式等信息。 工作量包括职工号、完成的产品数量等信息。 该设计系统能够对职工的工作量进行统计&#xff0c;并排出名次。注意&#xff0c;一个职工的工作量是可以多次…...

大家好,我叫Redis~

大家好&#xff0c;我是Redis&#xff01;下面请通过我的故事来认识我吧。 1. 初次登场&#xff1a;为什么需要我 在“双十一”期间&#xff0c;商店被顾客挤得水泄不通&#xff0c;所有人都急着问&#xff1a;“这款商品还有库存吗&#xff1f;” 可怜的服务员&#xff08;My…...

【鸿蒙】HarmonyOS NEXT星河入门到实战6-组件化开发-样式结构重用常见组件

目录 1、Swiper轮播组件 1.1 Swiper基本用法 1.2 Swiper的常见属性 1.3 Swiper的样式自定义 1.3.1 基本语法 1.3.2 案例小米有品 2、样式&结构重用 2.1 Extend:扩展组件(样式、事件) 2.2 Styles:抽取通用属性、事件 2.3 Builder:自定义构建函数(结构、样式、事…...

网络安全学习(五)Burpsuite

经过测试&#xff0c;发现BP需要指定的JAVA才能安装。 需要的软件已经放在我的阿里云盘。 &#xff08;一&#xff09;需要下载Java SE 17.0.12(LTS) Java Downloads | Oracle 1.2023版Burp Suite 完美的运行脚本的环境是Java17 2.Java8不支持 看一下是否安装成功&#xff0c…...

多版本node管理工具nvm

什么是nvm&#xff1f; 在项目开发过程中&#xff0c;使用到vue框架技术&#xff0c;需要安装node下载项目依赖&#xff0c;但经常会遇到node版本不匹配而导致无法正常下载&#xff0c;重新安装node却又很麻烦。为解决以上问题&#xff0c;nvm&#xff1a;一款node的版本管理工…...

如何扫描试卷去除笔迹?4种方法还原整洁试卷

如何扫描试卷去除笔迹&#xff1f;扫描试卷去除笔迹&#xff0c;作为现代学习管理与评估的革新手段&#xff0c;不仅显著提升了试卷的整洁美观度&#xff0c;更在环保和资源再利用层面发挥了积极作用。它使得试卷的保存、分享与复习变得更加便捷高效&#xff0c;减少了纸质资源…...

介绍⼀下泛型擦除

1.是什么 泛型擦除&#xff08;Type Erasure&#xff09;是Java泛型实现中的一个重要概念。Java的泛型是通过类型擦除来实现的&#xff0c;这意味着在运行时&#xff0c;泛型信息&#xff08;即类型参数的具体类型&#xff09;是不可用的。编译器在编译时会对泛型代码进行擦除处…...

STM32F4基本定时器使用和原理详解

STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...

c++ 面试题(1)-----深度优先搜索(DFS)实现

操作系统&#xff1a;ubuntu22.04 IDE:Visual Studio Code 编程语言&#xff1a;C11 题目描述 地上有一个 m 行 n 列的方格&#xff0c;从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子&#xff0c;但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...

苍穹外卖--缓存菜品

1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得&#xff0c;如果用户端访问量比较大&#xff0c;数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据&#xff0c;减少数据库查询操作。 缓存逻辑分析&#xff1a; ①每个分类下的菜品保持一份缓存数据…...

从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)

设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile&#xff0c;新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...

解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错

出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上&#xff0c;所以报错&#xff0c;到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本&#xff0c;cu、torch、cp 的版本一定要对…...

【HTML-16】深入理解HTML中的块元素与行内元素

HTML元素根据其显示特性可以分为两大类&#xff1a;块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...

ip子接口配置及删除

配置永久生效的子接口&#xff0c;2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...

Go 并发编程基础:通道(Channel)的使用

在 Go 中&#xff0c;Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式&#xff0c;用于在多个 Goroutine 之间传递数据&#xff0c;从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...

如何更改默认 Crontab 编辑器 ?

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

[ACTF2020 新生赛]Include 1(php://filter伪协议)

题目 做法 启动靶机&#xff0c;点进去 点进去 查看URL&#xff0c;有 ?fileflag.php说明存在文件包含&#xff0c;原理是php://filter 协议 当它与包含函数结合时&#xff0c;php://filter流会被当作php文件执行。 用php://filter加编码&#xff0c;能让PHP把文件内容…...