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

Git 常用操作(git rebase、HEAD、撤销、win10格式)

1 关闭windows上自动转为crlf格式

windown 上git会默认打开autocrlf,但我们想强制设为为LF,这样linux和windows都兼容。

1.1 运行以下命令查看当前设置:

git config --global core.autocrlf

  • 若输出为空或false,表示未启用自动转换。这是我们期待的结果。

1.2 禁用所有自动转化,即保持为LF

git config --global core.autocrlf false

2 统计修改代码行数

先把要统计的代码文件,加入到stage阶段,也就是git add <要统计的代码文件>,或者在vscode左边导航栏“源代码管理”中,把“更改”中的文件,点击加号,加入到“暂存的更改中”,也能达到同样的效果。

加入到stage后,操作:

git diff --cached --stat

便可以显示修改的代码行数,手动加一下即可。

3 本地在新分支B上开发代码,已经提交到B了,想和主分支A同步,并保持在当前分支B

在目前的分支B上,后续要切换到主分支A上。

1)切换到主分支A上,并拉取主分支A代码

切换前,首先把主分支A代码删除: git branch -D dev-A

切换到主分支A,并拉取主分支A代码。

方法一:

重新从远程拉取主分支

git fetch origin dev-A # 获取远程最新代码(但不自动合并)

git checkout dev-A # 重新创建本地分支并切换到它

方法二:

或者更简洁的方式:

git checkout -b dev-A origin/dev-A # 一步完成拉取和切换

2)切换到开发分支B,进行rebase

git checkout dev-B

最关键的一步: 在当前的开发分支B上进行操作,效果是在主分支A上最新代码上,自动加入当前分支B的提交。

git rebase dev-A

4 本地在新分支B上开发代码,已经提交到B了,想和主分支A同步,并保持在主分支A上

1)切换到主分支A上,并拉取主分支A代码,和上一章保持一样。

2)保持在主分支A上,用cherry-pick 进行操作

git cherry-pick abc1234 # abc1234 应用到当前分支 A

5 HEAD用法

HEAD 代表当前所在提交。

^HEAD 或者HEAD^ 表示当前提交的父提交。

HEAD^ 或 HEAD^1 = 当前提交的第一个父提交(等同于 HEAD~1)。

HEAD^^ = 祖父提交(等同于 HEAD~2)。

HEAD^2 = 当前提交的第二个父提交(仅在合并提交时有意义)。

1) git reset --soft HEAD^ 是一个 Git 命令,用于撤销最新的提交(commit),但保留所有修改(包括工作目录和暂存区的变更)

--soft,软重置模式,仅回退提交历史,不触碰工作目录和暂存区。

2)git reset HEAD 取消暂存区修改,不会影响到内容。

5.1 撤销commit

撤销最近提交,回退commit到暂存区:

git reset --soft HEAD^

或者 git reset --soft HEAD~1

撤销最近提交,回退暂存区到工作区:

git reset HEAD~1可行

git reset HEAD^1 和上面等价

http://www.jsqmd.com/news/460258/

相关文章:

  • 【ESP32实战指南】-- 构建安全可靠的远程OTA升级系统(兼容Arduino/PlatformIO)
  • HTML与CSS入门到精通:Kottans Frontend Course核心训练
  • Python实战:手把手教你用递归下降法实现C++编译器(附完整源码)
  • 从泰勒展开到Hermite插值:数值分析老师没讲清楚的导数拟合原理
  • CIDR与VLSM实战解析:如何优化IP地址分配与路由聚合
  • 从YOLOv5到RKNN:模型转换的实战避坑与优化指南
  • 泛微E9数据库操作实战:5个高频SQL查询场景与避坑指南
  • LVGL滑动部件与进度条实战:从基础配置到高级应用
  • Cadence模块复用实战:如何把常用电路变成‘乐高积木’一键调用
  • 从HASH到明文:用Mimikatz获取Windows凭证的5种实战方法对比(含最新绕过技巧)
  • VS Code 与AI编程助手:提升开发效率的10个实用技巧
  • 从分压到测温:手把手教你玩转电阻的6种实用电路设计
  • 嵌入式安全必看:IEC60730 ClassB认证中PC自检的ARM地址指定技巧与避坑指南
  • YOLOv8实战:从VOC数据集到自定义训练的完整指南
  • 大一下日记
  • 基于Multisim的智能八路抢答器设计与仿真优化
  • 推荐几个国际知名的半导体核心零部件展会,全球资源一网打尽 - 品牌2026
  • ChAMP甲基化分析实战:从IDAT文件到DMR检测的完整流程(附常见报错解决方案)
  • ROS机械臂手眼标定避坑指南:从数据采集到误差分析的完整流程
  • AppScan实战指南(一)—Windows 10系统下Web漏洞扫描工具AppScan的快速部署与破解
  • 从零到一:基于JAKA机械臂与D455相机的自动化采摘系统开发实战
  • Android触屏唤醒背后的内核机制:从KEY_POWER到FB_EVENT_BLANK的完整解析
  • JavaScript数学计算实战:用Math对象解决5个常见问题(附educoder通关代码)
  • RT-Thread Smart动态加载揭秘:从ELF解析到用户态执行的完整流程解析
  • JSON 处理效率拉满!一站式解决开发者日常调试痛点
  • 生信实战|OrthoFinder直系同源基因分析全流程解析
  • 零基础理解捷联惯导精对准:用Python复现静基座小失准角估计全过程
  • 音频处理实战:如何用RC电路搭建一阶HPF消除低频噪声
  • 遥感影像大倍数超分新突破:SRADSGAN的链式训练与分层密集采样解析
  • WPF Path绘图实战:从基础线段到复杂贝塞尔曲线的应用解析