news 2026/9/8 12:49:48

git常见操作

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
git常见操作

安装完git工具后,先要通过git config配置用户名和邮箱

git config --global user.name 'xxxx'
git config --global user.email 'xxx@xxx'

然后可以通过git clone下载远程仓库代码

git clone https://gitee.com/xxxx.git

接下来需要查看git分支的代码,下面是我所在的项目代码

$ git branch -a
* (HEAD detached at origin/tbox_data)
master
remotes/origin/HEAD -> origin/master
remotes/origin/master
remotes/origin/tbox_data

可以git checkout切本地分支,再关联远程分支

$ git checkout -b cqc origin/tbox_data
Switched to a new branch 'cqc'
branch 'cqc' set up to track 'origin/tbox_data'.

本地关联远程分支

$ git branch --set-upstream-to=origin/tbox_datacqc
branch 'cqc' set up to track 'origin/tbox_data'.

注意上面不带git branch -a中的"remotes/"部分

接下来就是提交修改代码的流程

# 1. 确认当前分支(可选)

git branch

# 2. 暂存所有修改

git add .

# 3. 提交到本地

git commit -m "dev分支:新增xxx功能"

# 4. 拉取远程最新

git pull origin dev

# 5. 推送到远程(首次加 -u,后续直接 git push)

git push -u origin dev

接下来说下如果提交出错后怎么处理,这也是git比较头疼的问题

如果代码比较少,可以本地拷贝出来,然后执行git reset --hard HEAD

git reset --hard HEAD会同时修改版本库、暂存区和工作区,强制让这三个区域完全匹配HEAD指向的版本。可以理解为:“彻底回滚,清空所有未提交的修改,回到指定版本的纯净状态”。

然后再拷贝自己修改的代码到指定位置,重新提交代码。

当然回退代码还有git reset --soft HEAD和git restore,可以自己研究

区别如下

在解释区别前,先明确 Git 三个关键区域的定义,这是理解 reset 命令的基础:

  • 工作区(Working Directory):你本地正在编辑的文件目录,是最 “活跃” 的区域。
  • 暂存区(Staging Area/Index):准备提交的文件快照,执行git add后文件会进入这里。
  • 版本库(Repository):Git 存储提交历史和版本信息的区域,git commit会把暂存区内容存入这里。
  • HEAD:指向当前分支的最新提交,可理解为 “当前版本的指针”。

一、git reset --soft HEAD(软重置)

作用

仅修改版本库的HEAD指针,不改变暂存区和工作区。可以理解为:“撤销提交,但保留所有修改(暂存区和工作区都不变)”。

示例代码 & 场景

假设你刚提交了一个版本(commit A),但发现提交信息写错了,想修改后重新提交:

# 查看当前提交记录(确认HEAD位置) git log --oneline # 输出示例:a1b2c34 (HEAD -> main) 初始提交 # 软重置到当前HEAD(等价于git reset --soft HEAD~0,无实际变化) # 若要撤销最后一次提交,用 git reset --soft HEAD~1 git reset --soft HEAD~1 # 此时查看状态:暂存区仍保留上次提交的所有文件 git status # 输出:Changes to be committed: # modified: test.txt(文件仍在暂存区) # 修改提交信息后重新提交 git commit -m "修正后的提交信息"

关键影响

  • 版本库:HEAD指针回退到指定版本(如HEAD~1)。
  • 暂存区:完全保留重置前的内容,所有文件仍处于 “已暂存” 状态。
  • 工作区:完全保留所有修改,无任何文件被覆盖。

二、git reset --hard HEAD(硬重置)

作用

同时修改版本库、暂存区和工作区,强制让这三个区域完全匹配HEAD指向的版本。可以理解为:“彻底回滚,清空所有未提交的修改,回到指定版本的纯净状态”。

示例代码 & 场景

假设你在工作区写了很多无效代码,想一键回到最新提交的干净状态:

# 查看当前修改(工作区有未提交的修改) git status # 输出:Changes not staged for commit: # modified: test.txt # 硬重置到当前HEAD git reset --hard HEAD # 再次查看状态:工作区和暂存区都清空 git status # 输出:nothing to commit, working tree clean

关键影响

  • 版本库:HEAD指针回退到指定版本。
  • 暂存区:清空所有暂存内容,与HEAD版本的暂存区一致。
  • 工作区:强制覆盖所有修改,未提交的代码会被彻底删除(无法恢复)。

三、核心区别对比表

维度git reset --soft HEADgit reset --hard HEAD
版本库(HEAD)改变(指针回退)改变(指针回退)
暂存区不改变(保留所有暂存)改变(清空并匹配 HEAD)
工作区不改变(保留所有修改)改变(覆盖并匹配 HEAD)
数据安全性高(无数据丢失)低(未提交修改会丢失)
典型使用场景撤销提交但保留修改、修改提交信息放弃所有未提交修改、回到干净版本

总结

  1. git reset --soft HEAD是 “温和重置”:只动提交历史,暂存区和工作区的修改全保留,适合需要调整提交但不想丢代码的场景。
  2. git reset --hard HEAD是 “强制重置”:版本库、暂存区、工作区全同步到HEAD版本,未提交的修改会被彻底删除,使用前务必确认无需保留这些修改。
  3. 核心记忆点:--soft只改提交记录,--hard改所有区域(工作区 + 暂存区 + 提交记录)。

代码的常见命令见:

https://blog.csdn.net/m0_73713507/article/details/155317287

https://juejin.cn/post/7566450527867011081

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/5 23:28:30

从零搭建C++分布式AI推理平台,你必须知道的8个关键步骤

第一章:C分布式AI推理平台概述在人工智能应用日益普及的背景下,高性能、低延迟的AI推理服务成为系统架构中的关键环节。C凭借其卓越的性能控制与底层资源管理能力,成为构建分布式AI推理平台的理想选择。该平台旨在将深度学习模型部署到多节点…

作者头像 李华
网站建设 2026/9/2 22:45:35

HTML Canvas可视化TensorFlow模型预测结果

HTML Canvas可视化TensorFlow模型预测结果 在当今AI应用日益普及的背景下,如何让复杂的深度学习模型“看得见、摸得着”,成为连接技术与用户之间的关键一环。尤其是在教学演示、产品原型或在线服务中,仅仅返回一个“预测类别”远远不够——人…

作者头像 李华
网站建设 2026/9/2 22:47:12

给AI装一面“镜子”:Reflexion模式与Actor-Critic架构构建自省智能体

想象这样一个场景,你让一款能调用气象工具的AI查询月球的天气,它立刻制定计划并执行指令,结果收到“月球不是地球有效城市”的报错。接下来发生的事情可能会让你哭笑不得,这款AI会反复重试,先是调整首字母大小写&#…

作者头像 李华
网站建设 2026/9/4 16:39:26

主线程阻塞导致掉帧?深度解析C++引擎中渲染线程同步的4种解决方案

第一章:主线程阻塞与渲染性能瓶颈在现代Web应用开发中,主线程的执行效率直接影响页面的响应速度与视觉流畅度。浏览器的渲染引擎与JavaScript引擎共享主线程,当JavaScript长时间执行时,会阻塞DOM更新、样式计算、布局与绘制等关键…

作者头像 李华
网站建设 2026/9/4 4:45:47

博客排版技巧:让你的TensorFlow文章更具可读性

博客排版技巧:让你的 TensorFlow 文章更具可读性 在深度学习项目中,环境配置常常比模型设计更让人头疼。你有没有遇到过这样的情况:写了一篇精心打磨的 TensorFlow 教程,读者却卡在“第一步”——环境安装?明明代码逻辑…

作者头像 李华
网站建设 2026/9/4 5:27:44

如何选择适合工业4.0的设备监控系统以提升智能制造水平?

在工业4.0加速演进的背景下,设备监控系统已从传统的数据记录工具,全面升级为智能制造体系的“神经中枢”与智能决策的核心引擎。它不再满足于被动采集设备运行参数,而是通过物联网(IoT)、人工智能(AI&#…

作者头像 李华