git常用指令及应用案例

一、常用指令

用户配置

git config --global user.name "bettyaner"
git config --global user.email bettyaner@163.com

工作常用指令

// 初始化仓库
git init // 对状态的跟踪、分为内容状态和文件状态
// 内容状态标示内容文件的改变,有三个区域:工作目录,暂存区和提交区
// 文件状态有两个状态:已跟踪和未跟踪
git status// 添加文件内容到暂存区(同时文件被跟踪)
git add// 添加所有文件
git add .// 仅从暂存区删除
git rm --cached
// 从暂存区与工作目录同时删除
git rm// 从暂存区提交 -m:注释
git commit -m 'first commit' 
// 从工作区提交
git commit -a -m 'full commit'// 查看提交历史记录
git log// 工作区与暂存区的差异
git diff

分支

// 切换分支
git checkout newBranch
// 放弃工作区中全部的修改
git checkout .
// 将文件内容从暂存区复制到工作目录, 放弃工作区中某个文件的修改
git checkout -- filename
// 将内容从上次提交复制到工作目录
git checkout HEAD -- <file> 
// 强制放弃 index 和 工作区 的改动:
git checkout -f// 列出所有本地分支
git branch
// 列出所有远程分支
git branch -r
// 列出所有本地分支和远程分支
git branch -a
// 创建分支
git branch newBranch [origin/newBranch]
// 删除分支
git branch -d [branch-name]# 删除远程分支
$ git push origin --delete [branch-name]
$ git branch -dr [remote/branch]# 合并指定分支到当前分支
git merge [branch]# 选择一个commit,合并进当前分支
git cherry-pick [commit]git rebase

撤销

// 可以指定退回某一次提交的版本
// --mixed为默认, 重置暂存区的指定文件的某次add, 工作区保持原有修改
// --soft, 重置本地仓库的某次commit提交, 工作区和暂缓区保持原有修改
// --hard, 重置本地仓库、暂存区与工作区,与上一次commit保持一致, 放弃原有修改
// --keep, 重置当前HEAD为指定commit,但保持暂存区和工作区不变
git reset [--soft | --mixed | --hard | --keep] [HEAD]// 新建一个commit,用来撤销指定commit
// 后者的所有变化都将被前者抵消,并且应用到当前分支
git revert [commit]

远程同步

// 下载远程仓库的所有变动
git fetch [remote]// 显示所有远程仓库
git remote -v
// 添加新的远程仓库
git remote add [shortname] [url]// 取回远程仓库变化,与本地分支合并
// git pull = git fetch + git merge FETCH_HEAD 
// git pull --rebase =  git fetch + git rebase FETCH_HEAD 
git pull [remote] [branch]// 上传本地指定分支到远程仓库
git push [remote] [branch]// 强行推行当前分支到远程仓库,即使有冲突
git push [remote] --force

打包指定分支

// 生成项目压缩包,遵守.gitignore
git archive -o ./dist.zip HEAD

缓存修改

git stash         // 存储当前分支下的所有改动
git stash list    // 查看所有的存储列表
git stash pop     // 释放最近一次保存的内容,并且将该次保存的内容出栈
git stash apply stash@{0}   // 应用某一次的存储内容,但不删除改内容
git stash push .../.../     // 存储指定的文件修改
git stash show stash@{0}    // 查看某一个压栈修改了哪几个文件  -p 查看修改内容

二、应用

1. 撤销本地仓库修改

未使用 git add 缓存代码时

// 放弃指定文件的修改
git checkout -- [readme.md]
// 放弃所有的文件修改
git checkout . 

​ 不要忘记中间的 “–” ,不写就成了检出分支了!!

​ 此命令用来放弃掉所有还没有加入到缓存区(就是 git add 命令)的修改:内容修改与整个文件删除。但是此命令不会删除掉刚新建的文件。因为刚新建的文件还没已有加入到 git 的管理系统中。所以对于git是未知的。自己手动删除就好了。

已经使用了 git add 缓存了代码

// 放弃指定文件的缓存
git reset HEAD [readme.md]
// 放弃所以的缓存可以使用
git reset HEAD

​ 此命令用来清除 git 对于文件修改的缓存。相当于撤销 git add 命令所在的工作。在使用本命令后,本地的修改并不会消失,而是回到了如(一)所示的状态。继续用(一)中的操作,就可以放弃本地的修改。

已经用 git commit 提交了代码

 // 回退到上一次commit的状态git reset --hard HEAD^// 回退到任意版本git reset --hard commitid// 可以查看请交历史记录 git log 

2. 想要撤回中间某次commit

revert

// 新建一个commit,用来撤销指定commit
git revert commit_id

​ 然后如果有冲突,解决冲突,然后重新commit,push到远程分支,这时远程仓库会多了一个commit,而原来想要撤销的那条commit记录还在,但是最终代码,也就是最新的commit,已经把不要的代码移除了,此时达到了我们的目的。

// 如果想撤销的不是一次commit,而是连着的几次,那么
git revert --no-commit commit1..commit2

cherry-pick

// 回退到出错版本前一个commit
git reset --hard 1d7444
// 将某次commit的更改应用到当前版本(将出错 commit 之后别人提交的代码合并到当前正常代码分支上)
git cherry-pick 626335
// 强制提交
git push origin HEAD --force

3. git设定不合并的文件

场景:自己self分支的代码想要合并到master主分支,但是有一个read.me文件与主分支的read.me文件不一样,但是又不想合并到read.me文件。

1、设置git merge配置项,启用merge策略

git config --global merge.ours.driver true

2、新建.gitattributes文件,配置要忽略merge的文件

根目录下创建.gitattributes文件,在文件中写入:read.me merge=ours

3、我们切到master分支,执行git merge,read.me文件不会合并

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/607579.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ADS仿真 之 容差/良率分析

之所以要进行容差分析&#xff0c; 是因为任何电子元器件均存在一定的误差&#xff0c; 如电感、电容的精度等。 例如一个标称为2.0nH0.1nH的电感&#xff0c;代表的意思产品有99.74%的概率落在2.0nH0.1nH范围内&#xff0c; 即满足6σ &#xff0c;σ是标准偏差或者说方差&…

Hyperledger Fabric 二进制安装部署 Peer 节点

规划网络拓扑 3 个 orderer 节点&#xff1b;组织 org1 , org1 下有两个 peer 节点&#xff0c; peer0 和 peer1; 组织 org2 , org2 下有两个 peer 节点&#xff0c; peer0 和 peer1; 节点宿主机 IPhosts端口cli192.168.1.66N/AN/Aorderer0192.168.1.66orderer0.example.com70…

案例分享:当前高端低延迟视频类产品方案分享(内窥镜、记录仪、车载记录仪、车载环拼、车载后视镜等产品)

若该文为原创文章&#xff0c;转载请注明出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/135439369 红胖子(红模仿)的博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结…

大模型学习

大模型的参数量和显存占用估算 现在业界的大语言模型都是基于transformer模型的&#xff0c;模型结构主要有两大类&#xff1a;encoder-decoder&#xff08;代表模型是T5&#xff09;和decoder-only&#xff0c;具体的&#xff0c;decoder-only结构又可以分为Causal LM&#x…

鸿蒙系统应用开发之开发准备

今天我们来聊一聊鸿蒙系统应用开发之前&#xff0c;要做什么准备工作&#xff0c;如下图所示&#xff0c;我们要做的就是安装DevEco Studio&#xff0c;然后配置开发环境。 老规矩&#xff0c;拍拍手&#x1f44f;&#xff0c;上菜。 安装DevEco Studio 首先我们打开链接HUAWEI…

JqGrid获得所有选中行数据ID数组,获取所有行的ID数组

JqGrid获得所有选中行数据ID数组&#xff0c;获取所有行的ID数组 获得选中行的ID数组&#xff1a; var ids $("jqgridtableid").jqGrid(getGridParam,selarrrow); 获得所有行对象的数组&#xff1a; var ids $("jqgridtableid").jqGrid(getDataIDs); 下面…

Java学习苦旅(二十一)——泛型

本篇博客将详细讲解Java中的泛型。 文章目录 泛型的定义语法示例 泛型类语法示例类型边界语法示例 类型擦除通配符语法示例上界语法示例 下界语法示例 裸类型泛型方法语法示例 泛型的限制结尾 泛型的定义 语法 class 泛型类名称<类型形参列表> {//这里可以使用类型参数…

【每日论文阅读】Do Perceptually Aligned Gradients Imply Robustness?

近似人眼梯度 https://icml.cc/virtual/2023/oral/25482 对抗性鲁棒分类器具有非鲁棒模型所没有的特征——感知对齐梯度&#xff08;PAG&#xff09;。它们相对于输入的梯度与人类的感知非常一致。一些研究已将 PAG 确定为稳健训练的副产品&#xff0c;但没有一篇研究将其视为…

YOLOv8改进 | 损失函数篇 | SlideLoss、FocalLoss分类损失函数助力细节涨点(全网最全)

一、本文介绍 本文给大家带来的是分类损失 SlideLoss、VFLoss、FocalLoss损失函数,我们之前看那的那些IoU都是边界框回归损失,和本文的修改内容并不冲突,所以大家可以知道损失函数分为两种一种是分类损失另一种是边界框回归损失,上一篇文章里面我们总结了过去百分之九十的…

利用人工智能和机器人技术实现复杂的自动化任务!

这篇mylangrobot项目由neka-nat创建&#xff0c;本文已获得作者Shirokuma授权进行编辑和转载。 https://twitter.com/neka_nat GitHub-mylangrobot &#xff1a;GitHub - neka-nat/mylangrobot: Language instructions to mycobot using GPT-4V 引言 本项目创建了一个使用GPT-4…

docker/华为云cce 部署nacos 2.3.0 集群模式

镜像地址 https://hub.docker.com/r/nacos/nacos-server 版本 nacos/nacos-server:v2.3.0-slim 关键环境变量 使用mysql数据源 变量值备注MODEcluster启用集群模式MYSQL_SERVICE_DB_NAME数据库名MYSQL_SERVICE_USER数据库用户名MYSQL_SERVICE_PASSWORD数据库密码SPRING_D…

vue 3.0 所采用的 Composition Api 和 vue 2.0 使用的 Option Api 区别

Vue 3.0 引入了 Composition API&#xff0c;这是对 Vue 2.0 中使用的 Options API 的一个补充。Composition API 提供了一种更灵活的方式来组织和重用组件逻辑&#xff0c;而 Options API 则更倾向于在组件实例中直接定义和操作数据和逻辑。 区别说明&#xff1a; 可重用性&…

江科大-stm32-B站系统初识笔记P2

文章目录 一&#xff1a;ARM是什么二&#xff1a;关键字介绍 推荐视频&#xff1a;《 STM32入门教程-2023版 细致讲解 中文字幕》 一&#xff1a;ARM是什么 ①&#xff1a; ST – 意法半导体 M – Microelectronics 微电子 32 – 总线宽度 ARM架构: Cortex-A:Application 应用…

【echarts】雷达图参数详细介绍

1. 详细示例 var option {tooltip: {trigger: item},radar: {startAngle: 90,//第一个指示器轴的角度&#xff0c;默认90indicator: [// 指示器{ name: Category A, max: 220 },// name:指示器名称{ name: Category B, max: 200 },// max:指示器的最大值&#xff0c;可选&…

SQL Server定时调用指定WebApi接口

SQL Server定时调用指定WebApi接口 JOB of Steps: DECLARE ApiUrl VARCHAR(2000) DECLARE RequestType VARCHAR(5) DECLARE ResponseText NVARCHAR(4000) SET ApiUrl http://192.168.1.169/sit-qualityapi/QC_ExceptionRecord/SendOAMessage_ExceptionRecord SET RequestTy…

NODE笔记 0

一些简单的node学习笔记记录&#xff0c;是Vue等前端框架的基础 入门学习备忘录 文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据总结 前言 node.js 内置网络服务器&#xff0c;是前端框架学习的基础&#xff1a; 概念&#xff1a;…

华为OD机试 - 最小矩阵宽度(Java JS Python C)

题目描述 给定一个矩阵,包含 N * M 个整数,和一个包含 K 个整数的数组。 现在要求在这个矩阵中找一个宽度最小的子矩阵,要求子矩阵包含数组中所有的整数。 输入描述 第一行输入两个正整数 N,M,表示矩阵大小。 接下来 N 行 M 列表示矩阵内容。 下一行包含一个正整数 K…

Linux--好玩的进度条

前言 先来看看我们想要达到的进度条效果&#xff0c;具体代码会在文章最后面放出。 一、创建文件及Makefile 我们需要实现声明的定义的分离&#xff0c;因此创建如下三个文件。 process.h prcess.c main.c。 touch process.h process.c main.c 同时还需要创建Makefi…

LeetCode 34 在排序数组中查找元素的第一个和最后一个位置

题目描述 在排序数组中查找元素的第一个和最后一个位置 给你一个按照非递减顺序排列的整数数组 nums&#xff0c;和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标值 target&#xff0c;返回 [-1, -1]。 你必须设计并实现时间…

Ant Design Vue Table 行合并的实现方式

首先封装实现函数如下 function getRowSpanCount (data, key, mainKey, target) {if (!Array.isArray(data)) return 1// 只取出筛选项const mainData data.map(_ > { return _[mainKey] })// 只取出筛选项data data.map(_ > { return _[key] }) let preValue data[0…