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

git常用命令学习

目录

文章目录

  • 目录
  • 第一章 git简介
    • 1.Git 与SVN
    • 2.Git 工作区、暂存区和版本库
  • 第二章 git常用命令学习
    • 1.ssh设置
    • 2.设置用户信息
    • 3.常用命令设置
      • 1.初始化本地仓库init
      • 2.克隆clone
      • 3.查看状态 git status
      • 4.添加add命令
      • 5.添加评论
      • 6.分支操作
        • 1.创建分支
        • 2.查看分支
        • 3.切换分支
        • 4.删除分支
      • 7.查看当前远程地址
      • 8. 分支比较
      • 9.log命令
      • 10.删除命令 git rm
      • 11.添加/移除远程仓库
      • 12.从远程仓库获取代码
      • 13.命令行-tag

第一章 git简介

1.Git 与SVN

Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。

Git 不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。如果你是一个具有使用 SVN 背景的人,你需要做一定的思想转换,来适应 Git 提供的一些概念和特征。

Git 与 SVN 区别点:

在这里插入图片描述

2.Git 工作区、暂存区和版本库

  • 工作区:就是你在电脑里能看到的目录。
  • 暂存区:英文叫stage, 或index。一般存放在 “.git目录下” 下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
  • 版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。

第二章 git常用命令学习

在这里插入图片描述

1.ssh设置

生成公钥私钥
ssh-keygen -t -rsa

2.设置用户信息

1.临时修改用户名和邮箱

如果只需要修改当前仓库的提交者信息,可以使用以下命令:

git config user.name "新用户名"
git config user.email "新邮箱地址"

查看临时配置:

git config user.name
git config user.email

2.全局修改用户名和邮箱

git config --global user.name "lixiaowei"
git config --global user.email "995439743@qq.com"

查看全局用户名和邮箱配置

git config --global user.name  //查看用户名
git config --global user.email //查看邮箱
git config --list    //查看其他更多信息

3.常用命令设置

1.初始化本地仓库init

初始化git仓库 一般有两种方式,一种是从远程仓库克隆一个完整的项目到本地,另一种是本地初始化一个新的git仓库。

//初始化仓库带工作区
git init
//初始仓库不带工作区
git init --bare

2.克隆clone

用于从远程仓库克隆一个完整的项目到本地。它不仅会创建一个新的 Git 仓库,还会下载所有的历史记录和分支,并将远程仓库设置为默认的上游仓库

git clone 远程仓库地址

3.查看状态 git status

是 Git 中一个非常常用的命令,用于查看当前工作目录的状态。它可以帮助你了解哪些文件已被修改、哪些文件已添加到暂存区、以及哪些文件尚未被跟踪。

//1.查看状态,命令用于显示工作目录和暂存区的状态。它告诉你有哪些修改被暂存,哪些没有,
//以及哪些文件被 Git 未跟踪。
git status
//2.查看状态 使输出信息更加简洁
git status -s
//3.显示状态并以长模式输出,列出已修改的文件的详细信息:
git status --long
//4.显示状态并以short模式输出,但不列出已跟踪的文件:
git status -u

在这里插入图片描述

4.添加add命令

//将未跟踪的文件加入暂存区
git add <文件>
//将暂存区的文件取消暂存
git reset <文件>
//1.添加单个文件到暂存区
git add 文件名
//2.添加所有文件到暂存区
git add .
//3.添加某个目录到暂存区
git add 目录名/
//4.使用通配符添加多个文件到暂存区:
git add *.txt
//5.添加所有文件和目录的变化到暂存区(包括新的文件和目录,但不包括未跟踪的文件):
git add -A
//6.添加自上次 commit 以来的所有变化到暂存区(包括删除的文件):
git add -u//7.强制添加所有文件
git add -f . 

5.添加评论

git commit -m "文件描述"
git commit --amend  //修改最后提交

6.分支操作

1.创建分支
//创建分支
git branch <branch_name>
//创建新分支并且切换到该分支
git checkout -b <branch_name>
2.查看分支
//1.查看本地分支
git branch
//2.查看远程分支
git branch -r
//3.查看本地和远程分支
git branch -a
//4.本地创建分支
git branch 分支名称
//5.切换分支
git checkout分支名称
//6.删除分支
git branch -d 分支名称
//7.强制删除分支
git branch -D 分支名称
//8.提交本地分支到远程仓库
git push <仓库简称> <分支名称> //git push origin b1
//9.分支h合并
git merge <分支名称>
//10.删除远程仓库分支
git push <仓库简称> -d <分支名称> //git push origin -d b1
3.切换分支
//1.切换到指定分支
git checkout <branch_name>
//2.指定提交切换分支
git checkout <branch_name> <commit_hash>//3.指定提交切换并且创建分支
git checkout -b  <分支名称>
4.删除分支
// 删除本地分支(只适用于已合并的分支)
git branch -d <branch_name>
// 强制删除本地分支 (未合并的也会被删除)
git branch -D <branch_name>
//删除远程分支
git push origin --delete <branch_name>

7.查看当前远程地址

//1.查看远程 列出指定的每一个远程服务器的简称
git remote
//2.查看远程 列出简称和地址
git remote -v
//3.查看远程仓库详细地址
git remote show <仓库简称>

8. 分支比较

git diff <branch_1> <branch_2>

9.log命令

  1. 查看特定文件的提交记录
git log <文件名>

2.查看某个分支的提交记录

git log branch-name

3.显示提交历史的分支结构

git log --graph
// 示例
git log --oneline --graph --all
// 输出
* 789abcd (HEAD -> main) Fix bug in calculation
| * abc1234 (feature-branch) Add new feature
|/
* 1234567 Initial commit

10.删除命令 git rm

//1.删除工作区和暂存区的文件:
git rm <file>
//2.仅删除工作区的文件,保留暂存区的版本(即撤销上一次的 git add):
git rm --cached <file>
//3.在删除前询问确认:
git rm -i <file>
//4.删除目录:
git rm -r <directory>
//5.仅从工作区删除,不影响暂存区和本地仓库:
git rm --cached -r <directory>
//6.强制删除文件,即使文件被修改过:
git rm -f <file>
//7.删除所有未跟踪的文件和目录(通常用于清理生产环境):
git rm -rf .//8.如果工作区误删除,想要回退
git checkout head <文件名>

11.添加/移除远程仓库

//1.添加远程仓库
git remote add <shortname> <url>
//1.添加远程仓库
git remote rm <shormame> 

12.从远程仓库获取代码

//1.从远程仓库克隆
git clone <url>
//2.从远程仓库拉去(拉取到.git目录,不会合并到工作区,工作区发生变化)
git fetch <shormame> 
//3.手动合并 把某个版本的某个分支合并到当前工作区
git merge <shortname>/<分支名称>
//4.从远程仓库拉取=fetch+merge
git pull  <shortname> <分支名称>
git pull  <shortname> <分支名称> --allow--unrelated-histories//强制拉取合并
//5.推送到某个分支
git push [remote-name] [branch-name]
eg:git push origin master

13.命令行-tag

Git 中,tag是标记存储库历史记录中特定提交的一种方式。tag通常用于标记项目的特定版本,例如版本 1.02.0

tag可以用于指定在仓库历史记录的某个特定点上创建的版本,这在软件开发中非常有用。如果需要在软件发布时创建tag,开发人员就可以跟踪哪个版本用于真实世界中的生产环境。在软件开发中,tag还可以用于标记里程碑特定功能的实现

除此之外,tag还可以用于将存储库中的提交版本控制系统中的标记关联。这可以用于确保特定版本的软件与存储库中的特定提交相关联。在软件开发中,这可以用于确保特定版本的软件与单独的存储库分支相关联

//1.列出所有标签
git tag
//2.查看tag 详情
git show [tagname]
//3.新建一个tag
git tag [tagname]
eg:git push origin 名称 //推送到远端
//4.提交制定的tag
git push [仓库简称] [tagname]
//5.新建一个分支指向某个tag
git checkout -b [branch] [tag]
//6.删除本地tag
git tag -d [tag]
//7.删除远程tag
git push origin :refs/tags/[tag]

联**。

//1.列出所有标签
git tag
//2.查看tag 详情
git show [tagname]
//3.新建一个tag
git tag [tagname]
eg:git push origin 名称 //推送到远端
//4.提交制定的tag
git push [仓库简称] [tagname]
//5.新建一个分支指向某个tag
git checkout -b [branch] [tag]
//6.删除本地tag
git tag -d [tag]
//7.删除远程tag
git push origin :refs/tags/[tag]

相关文章:

git常用命令学习

目录 文章目录 目录第一章 git简介1.Git 与SVN2.Git 工作区、暂存区和版本库 第二章 git常用命令学习1.ssh设置2.设置用户信息3.常用命令设置1.初始化本地仓库init2.克隆clone3.查看状态 git status4.添加add命令5.添加评论6.分支操作1.创建分支2.查看分支3.切换分支4.删除分支…...

【优选算法】7----三数之和

来了来了&#xff0c;他来了&#xff0c;又是学习算法的一天~ 今天的嘉宾是中等难度的算法题----三数之和&#xff01; ------------------------------------------begin------------------------------------ 题目解析&#xff1a; 哇趣&#xff01;又是给了一个数组&#…...

分子动力学模拟里的术语:leap-frog蛙跳算法和‌Velocity-Verlet算法

分子动力学模拟&#xff08;Molecular Dynamics Simulation&#xff0c;简称MD&#xff09;是一种基于经典力学原理的计算物理方法&#xff0c;用于模拟原子和分子在给定时间内的运动和相互作用‌。以下是关于分子动力学模拟的一些核心术语和概念&#xff1a; ‌定义系统‌&am…...

2025年数学建模美赛:A题分析(1)Testing Time: The Constant Wear On Stairs

2025年数学建模美赛 A题分析&#xff08;1&#xff09;Testing Time: The Constant Wear On Stairs 2025年数学建模美赛 A题分析&#xff08;2&#xff09;楼梯磨损分析模型 2025年数学建模美赛 A题分析&#xff08;3&#xff09;楼梯使用方向偏好模型 2025年数学建模美赛 A题分…...

利用 SoybeanAdmin 实现前后端分离的企业级管理系统

引言 随着前后端分离架构的普及&#xff0c;越来越多的企业级应用开始采用这种方式来开发。前后端分离不仅提升了开发效率&#xff0c;还让前端和后端开发可以并行进行&#xff0c;减少了相互之间的耦合度。SoybeanAdmin 是一款基于 Spring Boot 和 MyBatis-Plus 的后台管理系…...

996引擎 - 前期准备-配置开发环境

996引擎 - 前期准备 官网搭建服务端、客户端单机搭建 开发环境配置后端开发环境配置环境 前端开发环境配置环境 后端简介前端简介GUILayoutGUIExport 官网 996传奇引擎官网 所有资料从官网首页开始&#xff0c;多探索。 文档&#xff1a; 996M2-服务端Lua 996M2-客户端Lua 搭…...

Tensor 基本操作4 理解 indexing,加减乘除和 broadcasting 运算 | PyTorch 深度学习实战

前一篇文章&#xff0c;Tensor 基本操作3 理解 shape, stride, storage, view&#xff0c;is_contiguous 和 reshape 操作 | PyTorch 深度学习实战 本系列文章 GitHub Repo: https://github.com/hailiang-wang/pytorch-get-started Tensor 基本使用 索引 indexing示例代码 加减…...

【Uniapp-Vue3】request各种不同类型的参数详解

一、参数携带 我们调用该接口的时候需要传入type参数。 第一种 路径名称?参数名1参数值1&参数名2参数值2 第二种 uni.request({ url:"请求路径", data:{ 参数名:参数值 } }) 二、请求方式 常用的有get&#xff0c;post和put 三种&#xff0c;默认是get请求。…...

【Prometheus】Prometheus如何监控Haproxy

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…...

SSM开发(一)JAVA,javaEE,spring,springmvc,springboot,SSM,SSH等几个概念区别

目录 JAVA 框架 javaEE spring springmvc springboot SSM SSH maven JAVA 一种面向对象、高级编程语言&#xff0c;Python也是高级编程语言&#xff1b;不是框架(框架&#xff1a;一般用于大型复杂需求项目&#xff0c;用于快速开发)具有三大特性&#xff0c;所谓Jav…...

HTML5 常用事件详解

在现代 Web 开发中&#xff0c;用户交互是提升用户体验的关键。HTML5 提供了丰富的事件机制&#xff0c;允许开发者监听用户的操作&#xff08;如点击、拖动、键盘输入等&#xff09;&#xff0c;并触发相应的逻辑处理。本文将详细介绍 HTML5 中的常用事件&#xff0c;包括鼠标…...

TCP全连接队列

1. 理解 int listen(int sockfd, int backlog) 第二个参数的作用 backlog&#xff1a;表示tcp全连接队列的连接个数1。 如果连接个数等于backlog1&#xff0c;后续连接就会失败&#xff0c;假设tcp连接个数为0&#xff0c;最大连接个数就为1&#xff0c;并且不accept获取连接…...

统计文本文件中单词频率的 Swift 与 Bash 实现详解

网罗开发 &#xff08;小红书、快手、视频号同名&#xff09; 大家好&#xff0c;我是 展菲&#xff0c;目前在上市企业从事人工智能项目研发管理工作&#xff0c;平时热衷于分享各种编程领域的软硬技能知识以及前沿技术&#xff0c;包括iOS、前端、Harmony OS、Java、Python等…...

iOS 权限管理:同时请求相机和麦克风权限的最佳实践

引言 在开发视频类应用时&#xff0c;我们常常会遇到需要同时请求相机和麦克风权限的场景。比如&#xff0c;在用户发布视频动态时&#xff0c;相机用于捕捉画面&#xff0c;麦克风用于录制声音&#xff1b;又或者在直播功能中&#xff0c;只有获得这两项权限&#xff0c;用户…...

Excel 实现文本拼接方法

1. 使用 & 运算符 这是最常见和简单的拼接方法。你只需使用 & 来连接多个文本单元格或文本字符串。 示例公式&#xff1a; A1 & B1这个公式会将 A1 和 B1 单元格中的文本合并为一个字符串。 如果你希望在文本之间加入分隔符&#xff08;如空格、逗号等&#xf…...

软考信安27~Windows操作系统安全相关

1、Windows账户与组管理 1.1、用户账户查看 whoami #查看当前登录的用户名称 whoami /all #查看当前系统的用户名和组信息,以及SID whoami /user #查看当前用户的SID net user #查看系统中包含哪些用户 wmic useraccount get name,sid #查看…...

从 Spark 到 StarRocks:实现58同城湖仓一体架构的高效转型

作者&#xff1a;王世发&#xff0c;吴艳兴等&#xff0c;58同城数据架构部 导读&#xff1a; 本文介绍了58同城在其数据探查平台中引入StarRocks的实践&#xff0c;旨在提升实时查询性能。在面对传统Spark和Hive架构的性能瓶颈时&#xff0c;58同城选择StarRocks作为加速引擎&…...

WordPress Hunk Companion插件节点逻辑缺陷导致Rce漏洞复现(CVE-2024-9707)(附脚本)

免责申明: 本文所描述的漏洞及其复现步骤仅供网络安全研究与教育目的使用。任何人不得将本文提供的信息用于非法目的或未经授权的系统测试。作者不对任何由于使用本文信息而导致的直接或间接损害承担责任。如涉及侵权,请及时与我们联系,我们将尽快处理并删除相关内容。 0x0…...

使用 HTML 开发 Portal 页全解析

前言 在当今数字化时代&#xff0c;网站作为企业和个人展示信息、提供服务的重要窗口&#xff0c;其重要性不言而喻。而 Portal 页&#xff0c;作为网站的核心页面之一&#xff0c;承担着引导用户、整合信息等关键任务。那么&#xff0c;如何使用 HTML 开发一个功能齐全、界面…...

机器学习(二)

一,Multiple features(多类特征) 多元线性回归&#xff1a; 1,多类特征的符号表示: (可以类比二维数组) 2,多元线性回归模型: 二,Vectorization&#xff08;向量化&#xff09; (简化代码&缩短运行速度)&#xff1a; 向量化实现多元线性回归模型&#xff1a; 向量化实现多…...

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

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

golang循环变量捕获问题​​

在 Go 语言中&#xff0c;当在循环中启动协程&#xff08;goroutine&#xff09;时&#xff0c;如果在协程闭包中直接引用循环变量&#xff0c;可能会遇到一个常见的陷阱 - ​​循环变量捕获问题​​。让我详细解释一下&#xff1a; 问题背景 看这个代码片段&#xff1a; fo…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容

基于 ​UniApp + WebSocket​实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配​微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?

在建筑行业&#xff0c;项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升&#xff0c;传统的管理模式已经难以满足现代工程的需求。过去&#xff0c;许多企业依赖手工记录、口头沟通和分散的信息管理&#xff0c;导致效率低下、成本失控、风险频发。例如&#…...

高频面试之3Zookeeper

高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个&#xff1f;3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制&#xff08;过半机制&#xff0…...

连锁超市冷库节能解决方案:如何实现超市降本增效

在连锁超市冷库运营中&#xff0c;高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术&#xff0c;实现年省电费15%-60%&#xff0c;且不改动原有装备、安装快捷、…...

04-初识css

一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...

AI书签管理工具开发全记录(十九):嵌入资源处理

1.前言 &#x1f4dd; 在上一篇文章中&#xff0c;我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源&#xff0c;方便后续将资源打包到一个可执行文件中。 2.embed介绍 &#x1f3af; Go 1.16 引入了革命性的 embed 包&#xff0c;彻底改变了静态资源管理的…...

安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)

船舶制造装配管理现状&#xff1a;装配工作依赖人工经验&#xff0c;装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书&#xff0c;但在实际执行中&#xff0c;工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...

【LeetCode】3309. 连接二进制表示可形成的最大数值(递归|回溯|位运算)

LeetCode 3309. 连接二进制表示可形成的最大数值&#xff08;中等&#xff09; 题目描述解题思路Java代码 题目描述 题目链接&#xff1a;LeetCode 3309. 连接二进制表示可形成的最大数值&#xff08;中等&#xff09; 给你一个长度为 3 的整数数组 nums。 现以某种顺序 连接…...