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命令
- 查看特定文件的提交记录
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.0
或 2.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----三数之和
来了来了,他来了,又是学习算法的一天~ 今天的嘉宾是中等难度的算法题----三数之和! ------------------------------------------begin------------------------------------ 题目解析: 哇趣!又是给了一个数组&#…...
分子动力学模拟里的术语:leap-frog蛙跳算法和Velocity-Verlet算法
分子动力学模拟(Molecular Dynamics Simulation,简称MD)是一种基于经典力学原理的计算物理方法,用于模拟原子和分子在给定时间内的运动和相互作用。以下是关于分子动力学模拟的一些核心术语和概念: 定义系统&am…...

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

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

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

Tensor 基本操作4 理解 indexing,加减乘除和 broadcasting 运算 | PyTorch 深度学习实战
前一篇文章,Tensor 基本操作3 理解 shape, stride, storage, view,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,post和put 三种,默认是get请求。…...

【Prometheus】Prometheus如何监控Haproxy
✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…...

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

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

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

统计文本文件中单词频率的 Swift 与 Bash 实现详解
网罗开发 (小红书、快手、视频号同名) 大家好,我是 展菲,目前在上市企业从事人工智能项目研发管理工作,平时热衷于分享各种编程领域的软硬技能知识以及前沿技术,包括iOS、前端、Harmony OS、Java、Python等…...

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

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

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

从 Spark 到 StarRocks:实现58同城湖仓一体架构的高效转型
作者:王世发,吴艳兴等,58同城数据架构部 导读: 本文介绍了58同城在其数据探查平台中引入StarRocks的实践,旨在提升实时查询性能。在面对传统Spark和Hive架构的性能瓶颈时,58同城选择StarRocks作为加速引擎&…...

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

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

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

Laravel 实战:用Carbon筛选最近15分钟内的数据
在开发基于时间的特性时,常常需要筛选出在特定时间范围内的记录。例如,在一个设备报告系统中,你可能需要获取最近15分钟内的设备报告。本文将介绍如何在 Laravel 中实现这一功能,包括如何使用 Carbon 和 Eloquent 查询来筛选 crea…...

Ubuntu20.04 文件系统打不开
问题描述: 电脑中安装了相关的工具, 删除了一些东西之后,Linux 电脑操作系统为 Ubuntu20.04突然打不开文件系统了,命令 sudo nautilus 可以正常进入, 显示了很多权限问题。 使用过: killall nautilus 不起作用,后查原因:我无法作为普通用户…...

vue3的组件v-model(defineModel()宏)
这里展示的是vue3.4版本之前的如何在组件上使用以实现双向绑定 <template><p>我是子组件</p><input :value"props.modelValue" input"handelInput"/> </template><script lang"ts" setup>const props def…...

在 Ubuntu 22.04 上安装 Kubernetes(Kubeadm 安装方式)
使用 Kubeadm、Containerd 和 Calico 网络插件搭建 Kubernetes 集群教程 1.安装前准备(所有节点执行) 关闭防火墙 sudo systemctl disable --now ufw设置服务时区 # 设置为亚洲的上海时区 sudo timedatectl set-timezone Asia/Shanghai # 重启时间同…...

2_高并发内存池_各层级的框架设计及ThreadCache(线程缓存)申请内存设计
一、高并发内存池框架设计 高并发池框架设计,特别是针对内存池的设计,需要充分考虑多线程环境下: 性能问题锁竞争问题内存碎片问题 高并发内存池的整体框架设计旨在提高内存的申请和释放效率,减少锁竞争和内存碎片。 高并发内存…...

Java算法——排序
目录 引言1. 插入排序1.1 基本思想1.2 直接插入排序1.3 希尔排序 2. 选择排序2.1 基本思想2.2 直接选择排序2.3 直接选择排序变种2.4 堆排序 3. 交换排序3.1 基本思想3.2 冒泡排序3.3 快速排序3.3.1 快速排序的基本结构3.3.2 Hoare法3.3.3 挖坑法3.3.4 双指针法 3.4 快速排序非…...

【Python・机器学习】多元回归模型(原理及代码)
前言 自学笔记,分享给语言学/语言教育学方向的,但对语言数据处理感兴趣但是尚未入门,却需要在论文中用到的小伙伴,欢迎大佬们补充或绕道。ps:本文最少限度涉及公式讲解(文科生小白友好体质)&am…...

mysql数据被误删的恢复方案
文章目录 一、使用备份恢复二、使用二进制日志(Binary Log)三、使用InnoDB表空间恢复四、使用第三方工具预防措施 数据误删是一个严重的数据库管理问题,但通过合理的备份策略和使用适当的恢复工具,可以有效地减少数据丢失的风险…...

使用EasyExcel(FastExcel) 的模板填充报Create workbook failure
场景 使用 EasyExcel (FastExcel) 做数据导出时,用了通过模板导出数据的形式。 在读取模板文件的时候出现错误导致创建Workbook 失败, 错误日志: Create workbook failure... No valid entries or contents found, this is not a valid OOX…...

[C]基础8.详解操作符
博客主页:算法歌者本篇专栏:[C]您的支持,是我的创作动力。 文章目录 0、总结1、操作符的分类2、二进制和进制转换2.1、2进制转10进制2.2、10进制转2进制2.3、2进制转8进制和16进制 3、原码、反码、补码4、移位操作符4.1 左移操作符4.2 右移操…...