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

【版本控制】git命令使用大全


        大家好,我是jstart千语。今天来总结一下git的使用命令,上文会先将git命令都列出来,便于快速寻找,然后还会对部分常用命令图文讲解,适合新手,让你快速地理解。最后还会总结在idea中使用git。如果有缺失的,欢迎反馈补充。右侧有目录栏哦。


一、命令大全

1、总览

2、全局配置

global表示是全局配置;用户名和邮箱可以不是真实的,主要用在提交时标识记录

git config --global user.name "jstart"git config --global user.email "example@test.com"

 3、创建本地仓库

git init直接在本地的目录执行该命令,就会生成一个.git文件,就初始化完本地仓库了
git clone 远程仓库地址clone远程仓库,代码拉取下来后,会自动创建一个本地仓库,并且还会与远程仓库进行关联。

4、本地仓库命令

  • git status                                    查看工作区的文件状态
  • git add .                                       添加所有修改和新文件
  • git add <文件名>                          添加单个文件
  • git add -A                                      添加所有变动(包括删除)
  • git reset  文件名称                       将暂存区的文件取消暂存
  • git reset --hard 版本号                切换到指定版本
  • git commit -m "提交信息"           将暂存区的文件修改提交到本地仓库
  • git log                                           查看提交历史日志(仅显示当前分支的正式提交)
  • git reflog                  ​                    引用日志(显示所有 HEAD 的变更记录)

5、远程仓库命令

  • git remote -v(可选)                                            查看远程仓库
  • git remote add 仓库别名 远程仓库地址             关联远程仓库
  • git clon 远程仓库地址                                         克隆远程仓库
  • git pull 仓库别名 分支                                         从远程仓库拉取        
  • git push 仓库别名 分支                                       推送到远程仓库

6、分支操作

  • git branch                                    查看所有本地分支
  • git branch -r                                查看所有远程分支
  • git branch -a                                列出所有本地与远程分支
  • git branch 分支名称                     创建分支
  • git checkout 分支A                      切换到分支A
  • git checkout -b 分支A                  创建并切换到分支A
  • git push 仓库别名 分支名称         将该分支的代码推送到远程仓库
  • git merge 分支A                           将分支A合并到当前分支
  • git branch -d 分支名称                 删除该分支

7、标签操作

标签就相当于一个快照,类似发布的版本。

  • git tag                                           列出已有标签
  • git tag 标签名 -m "版本说明"       创建标签,-m属性可选
  • git push 仓库别名 标签名             将标签推送到远程仓库
  • git push 仓库别名 --tags             推送所有标签到远程仓库
  • git checkout -b 分支名 标签名      将该标签的代码拉取到指定分支,没有该分支就创建

8、撤销操作

  • git checkout -- 文件名         ​撤销未暂存的改动:
  • git reset HEAD 文件名        ​撤销暂存的改动
  • git reset --hard 版本号        彻底回退(丢弃后续提交)
  • git reset --soft 版本号          保留改动到暂存区 

9、其他

git stash        # 暂存当前修改
git stash pop    # 恢复最近一次暂存的修改

git log --oneline      # 简洁的提交历史
git log --graph        # 图形化显示分支合并
git log -p             # 查看提交的具体改动

git reflog            # 查看所有操作记录
git reset --hard 版本号  # 根据reflog找回丢失的提交

git reset --hard HEAD~1  # 回退到上一个提交(危险!会丢失当前提交)



二、图文讲解

开始之前还请了解一些基本概念

1、获取本地仓库

(1)本地初始化一个仓库:git init

执行命令:

 

(2)clone远程仓库:git clone 远程仓库地址

代码拉取下来后,会自动创建一个本地仓库,并且还会与远程仓库进行关联。



2、本地仓库操作

(1)查看工作区文件状态:git status

(2)添加到暂存区:git add

(3)提交代码到本地仓库:git commit

 注意:如果文件新增和修改后都要先添加到暂存区才能不知道文件修改,否则要指定文件名。

要提交多个文件时:

(4)取消暂存区:git reset

(5)查看日志:git log

(6)版本回退:git reset --hard 版本号

回退前:

回退后:

查看日志发现:问题就是如果回退到了之前的版本,使用git log查看不到后面版本的日志,不能返回较新的版本。

使用git reflog可以查看所有提交记录

回滚到较新版本:

查看日志



3、远程仓库操作

 (1)查看已关联的远程仓库:


(2)关联远程仓库

注意:当本地仓库没有关联别的远程仓库时,才可以进行关联远程仓库

 

示例: 


(3)克隆仓库,会自动关联远程仓库

克隆会将该仓库上的几乎所有数据(包括日志信息,历史记录等),

命令:git clone url


 (4)推送数据到远程:git push 别名 分支


(5)拉取git pull

 

场景示例:AB关联同一个远程仓库,并且开始时代码都相同,此时A修改了某个文件的代码并提交和推送。

B如何获取最新A修改的文件?

 

push后远程仓库更新,由B拉取最新修改的代码:



4、分支操作 

分支是Git使用过程中非常重要的概念。使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线。 同一个仓库可以有多个分支,各个分支相互独立,互不干扰。
通过git init命令创建本地仓库时默认会创建一个master分支。


(1)查看分支:git branch

(2)新建分支:git branch 分支名字

(3)切换分支

(4)分支操作

切换到哪个分支在工作区看到的就是哪个分支的文件,在这个分支下对工作区进行操作。

 切换分支时:

(5)合并分支:git merge 分支名称

表示将指定分支的代码合并到当前分支

 (6)提交分支代码:git push 仓库别名 分支名称

a、当远程仓库没有该分支时,会自动创建一个分支

 b、推送代码

c、查看远程仓库: 

(7)删除分支:git branch -d 分支名称 



5、标签操作 

Git中的标签,指的是某个分支某个特定时间点的状态。通过标签,可以很方便的切换到标记时的状态。 比较有代表性的是人们会使用这个功能来标记发布结点(v1.0、v1.2等)。

(1)新建标签

(2)推送到远程仓库:

推送前:

推送后:

(3)检出标签

将该标签拉取到指定分支中

三、idea中使用git

敬请期待。。。

相关文章:

【版本控制】git命令使用大全

大家好&#xff0c;我是jstart千语。今天来总结一下git的使用命令&#xff0c;上文会先将git命令都列出来&#xff0c;便于快速寻找&#xff0c;然后还会对部分常用命令图文讲解&#xff0c;适合新手&#xff0c;让你快速地理解。最后还会总结在idea中使用git。如果有缺失的&am…...

新兴技术安全:物联网、区块链与人工智能的安全挑战与应对

目录 新兴技术安全&#xff1a;物联网、区块链与人工智能的安全挑战与应对 一、物联网安全&#xff1a;连接世界背后的安全隐忧 物联网架构安全 设备认证 数据安全 二、区块链安全&#xff1a;信任基石的安全考验 共识机制安全 智能合约安全 私钥管理 三、人工智能安…...

手阳明大肠经之合谷穴

个人主页&#xff1a;云纳星辰怀自在 座右铭&#xff1a;“所谓坚持&#xff0c;就是觉得还有希望&#xff01;” 又名&#xff1a;1.《针灸甲乙经》&#xff1a;虎口。 所属经络&#xff1a;手阳明大肠经 定位 在手背&#xff0c;第1、2掌骨间&#xff0c;当第2掌骨桡侧的中点…...

【VUE3】练习项目——大事件后台管理

目录 0 前言 1 准备工作 1.1 安装pnpm 1.2 创建vue项目 1.3 Eslint & Prettier的配置 1.4 husky 提交代码检查 1.5 目录调整 1.6 VueRouter4 1.6.1 基础配置 1.6.2 路由跳转 1.7 引入 Element Plus 组件库 1.8 Pinia 1.8.1 优化 1.9 封装请求工具 1.9.1 安…...

kylin系统软件移植部署过程中遇到的问题及解决方案

有一个跨平台的c++软件,基于qt,boost,zmq,kafka等库,使用cmake脚本管理构建。在windows下和ubuntu下都能正常编译。在部署到kylin系统下时,遇到了一些问题。记录一下解决过程。 KYLIN 操作系统部署 c++开发环境: 安装了git,ninja,qt,boost等编译必要软件。因为之前…...

万字长篇————C语言指针学习汇总

经过一段时间的学习&#xff0c;我们已经接触到了C语言的很多知识了。不过目前我们接下来我们要接触C语言中一个最大的“门槛”&#xff1a;指针。 什么是指针&#xff1f; 在介绍指针之前&#xff0c;我们首先要明白变量与地址之间的关系。 举一个生活中的案例&#xff1a;一…...

实验一 HDFS的Shell操作

一、实验目的 熟悉HDFS Shell的语法格式&#xff0c;完成对HDFS上文件和目录的一系列操作 二、实验要求 2.1 练习dfs常用的子命令 ① -ls ② -du ③ -mv ④ -cp ⑤ -rm ⑥ -put ⑦ -cat ⑧ -help ⑨ -mkdir ⑩ -get 2.2通过Shell脚本定时采集数据到HDFS 三、实…...

复变函数摘记3

复变函数摘记3 5. 留数5.1 可去奇点、极点、本性奇点5.2 零点与极点的关系5.3 在无穷远点处的情形5.4 留数 5. 留数 \quad 如果函数 f ( z ) f(z) f(z) 在 z 0 z_0 z0​ 及 z 0 z_0 z0​ 的邻域内处处可导&#xff0c;那么称 f ( z ) f(z) f(z) 在点 z 0 z_0 z0​ 处解析。…...

【行测】判断推理:类比推理 and 定义判断

> 作者&#xff1a;დ旧言~ > 座右铭&#xff1a;读不在三更五鼓&#xff0c;功只怕一曝十寒。 > 目标&#xff1a;掌握 类比推理 and 定义判断 基本题型&#xff0c;并能运用到例题中。 > 毒鸡汤&#xff1a;有些事情&#xff0c;总是不明白&#xff0c;所以我不会…...

Java使用WebSocket视频拆帧进度处理与拆帧图片推送,结合Apipost进行调试

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId></dependency>Configuration public class WebSocketConfig {/*** 启动 WebSocket 服务器*/Beanpublic ServerEndpointE…...

计算斐波那契数列

1.对于斐波那契数列的理解&#xff1a; (1)常规 该数列由兔子繁衍的想法产生&#xff0c;故又“兔子数列” 其数值为&#xff1a;1、1、2、3、5、8、13、21、34 从数学定义上走&#xff1a;F(0)1&#xff0c;F(1)1, F(n)F(n - 1)F(n - 2)&#xff08;n ≥ 2&#xff0c;n ∈…...

JAVA如何操作文件?(超级详细)

目录 一、认识文件和相关知识 1.认识文件 2.⽬录 3.⽂件路径&#xff08;Path&#xff09; 4.文本文件和二进制文件的区分 二、File类操作文件 1.构造方法 2.方法 2.1 方法表 2.2 get相关的方法和构造方法 2.2.1 “.” 和 “..” 2.3 is相关的方法 2.4 删除相关…...

(2)VTK C++开发示例 --- 绘制多面锥体

文章目录 1. 概述2. CMake链接VTK3. main.cpp文件4. 演示效果 更多精彩内容&#x1f449;内容导航 &#x1f448;&#x1f449;VTK开发 &#x1f448; 1. 概述 VTK C开发示例程序&#xff1b; 使用C 和VTK绘制一个多面锥体。 环境说明系统ubuntu22.04、windows11cmake3.22、3.2…...

(2025-04-12)向老主机箱中安装新买的显卡及固态硬盘

目录 1 引言2 显卡及其驱动的安装3 固态硬盘的安装及C盘扩容3.1 固态硬盘正确连接到主板上后&#xff0c;操作系统上面仍然不显示对应盘符怎么办&#xff1f;3.2 如何对C盘扩容&#xff1f;3.3 新问题&#xff1a;原有D盘程序不能运行 4 总结 1 引言 今天安装昨天买的新固态硬…...

rk3588 驱动开发(一)字符设备开发

3.字符设备驱动开发 3.1 什么是字符设备驱动 字符设备&#xff1a;就是一个个字节&#xff0c;按照字节流进行读写操作的设备&#xff0c;读写是按照先后顺序的。 举例子&#xff1a;IIC 按键 LED SPI LCD 等 Linux 应用程序调用驱动程序流程&#xff1a; Linux中驱动加载成功…...

AbMole| 体内相互作用筛选揭示肝脏对癌症转移的限制

癌症转移&#xff0c;作为导致患者死亡的主要原因之一&#xff0c;其复杂机制一直是医学界研究的热点。肝脏&#xff0c;作为癌症转移的常见靶器官&#xff0c;其微环境对癌症细胞的生长和转移具有重要影响。然而&#xff0c;肝脏如何限制癌症转移的具体机制尚不完全清楚。 来…...

STM32移植文件系统FATFS——片外SPI FLASH

一、电路连接 主控芯片选型为&#xff1a;STM32F407ZGT6&#xff0c;SPI FLASH选型为&#xff1a;W25Q256JV。 采用了两片32MB的片外SPI FLASH&#xff0c;电路如图所示。 SPI FLASH与主控芯片的连接方式如表所示。 STM32F407GT6W25Q256JVPB3SPI1_SCKPB4SPI1_MISOPB5SPI1_MOSI…...

2025年第十六届蓝桥杯省赛JavaB组真题回顾

第16届蓝桥杯省赛已经结束了&#xff0c;第一次参加也是坐牢了4个小时&#xff0c;现在还是来总结一下吧&#xff08;先声明以下的解法&#xff0c;大家可以当作一种思路来看&#xff0c;解法不一定是正解&#xff0c;只是给大家提供一种能够正常想到的思路吧&#xff09; 试题…...

Android 接口定义语言 (AIDL)

目录 1. 本地进程调用(同一进程内)2. 远程进程调用(跨进程)3 `oneway` 关键字用于修改远程调用的行为Android 接口定义语言 (AIDL) 与其他 IDL 类似: 你可以利用它定义客户端与服务均认可的编程接口,以便二者使用进程间通信 (IPC) 进行相互通信。 在 Android 上,一个进…...

c# 数据结构 链表篇 有关双向链表的一切

本人能力有限,如有不足还请斧正 目录 0.双向链表的好处 1.双向链表的分类 2.不带头节点的标准双向链表 节点类:有头有尾 链表类:也可以有头有尾 也可以只有头 增 头插 尾插 删 查 改 遍历 全部代码 3.循环双向链表 节点类 链表类 增 头插 尾插 删 查 遍历…...

Debian服务器挂载外部存储设备的完整指南

在 Debian 系统中挂载外部存储设备(如 U 盘、移动硬盘、SSD)是服务器运维和桌面使用中非常常见的操作。本文将为你详细拆解从识别设备、格式化到手动/自动挂载的全过程&#xff0c;适合新手到进阶用户参考。 一、准备阶段&#xff1a;插入存储设备并识别 1. 插入外部设备后查看…...

660 中值定理

文章目录 前言168169170总结 前言 background music: 《代替》 张叶蕾 660 上面没有专门的中值定理章节&#xff0c;我蒙了。不过应该可以找一下。就是证明题&#xff0c;标志性应该还行。找一下。然后做一下。660 的题质量应该还是非常高的。但是积分中值定理&#xff0c;还有…...

Elasticsearch:AI 助理 - 从通才到专才

作者&#xff1a;来自 Elastic Thorben Jndling 在 AI 世界中&#xff0c;关于构建针对特定领域定制的大型语言模型&#xff08;large language models - LLM&#xff09;的话题备受关注 —— 不论是为了更好的安全性、上下文理解、专业能力&#xff0c;还是更高的准确率。这个…...

数据结构——布隆过滤器

目录 一、什么是布隆过滤器&#xff1f; 二、布隆过滤器的原理 三、布隆过滤器的特点 一、什么是布隆过滤器&#xff1f; 布隆过滤器是一种空间效率高、适合快速检索的数据结构&#xff0c;用于判断一个元素是否可能存在于一个集合中。它通过使用多个哈希函数和一个位数组来…...

时间的重构:科技如何重塑人类的时间感知与存在方式

时间是人类认知的基石&#xff0c;也是科技发展的终极命题。从石英钟到量子计时器&#xff0c;从日晷到区块链时间戳&#xff0c;技术不断重构着我们对时间的理解与利用。然而&#xff0c;当人工智能、量子计算和脑机接口等前沿技术开始挑战时间的线性本质时&#xff0c;我们不…...

悄悄话识别、 打电话识别、攀高识别三种识别算法

在摄像头正对场景下,悄悄话识别(唇语识别)、打电话识别和攀高识别是三种典型的行为检测技术。以下从技术原理、算法模型、应用场景及挑战等方面进行详细分析: 一、悄悄话识别(唇语识别) 技术原理 唇语识别通过分析嘴唇的几何特征(形状、开合程度、运动轨迹)和动态变化…...

docker多架构镜像构建

docker多架构镜像构建 Docker 多架构镜像构建&#xff08;Multi-Architecture Image Build&#xff09;允许你为不同平台&#xff08;如 linux/amd64, linux/arm64, linux/arm/v7 等&#xff09;构建和推送统一的镜像标签&#xff0c;解决在不同硬件架构之间部署的问题。 Doc…...

机器学习常用算法总结

1. 概述 机器学习的定义是对于某类任务T和性能度量P&#xff0c;如果一个计算机程序在T上其性能P随着经验E而自我完善&#xff0c;那么我们就称这个系统从经验E中学习&#xff0c;机器学习是人工智能的一种方法&#xff0c;它通过在大量数据中学习隐藏的规则&#xff0c;模式和…...

软件架构设计:MVC、MVP、MVVM、RIA 四大风格优劣剖析

MVC、MVP、MVVM 和 RIA 都是软件架构中常见的设计风格&#xff0c;以下是对它们的详细介绍&#xff1a; 一、MVC 架构风格&#xff08;Model - View - Controller&#xff09; 1.简介&#xff1a;MVC 架构风格将软件应用程序分为三个核心部分&#xff0c;通过这种划分来分离不…...

Android12 自定义系统服务

在Android中可以通过两种方式创建系统服务: 由SystemServer启动的系统服务,使用SystemServer线程资源,适合轻量级的服务,比如各种XMS服务;占用独立进程,在系统启动时,由init进程拉起,比如SurfaceFlinger;本文采用的是第一种方式。 自定义AssistantManagerService 参…...