news 2026/4/14 15:04:10

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/4/13 3:01:55

Docker安装后无法运行GPU容器?检查nvidia-docker

Docker安装后无法运行GPU容器?检查nvidia-docker 在部署深度学习模型时,你是否遇到过这样的场景:明明服务器装了高性能NVIDIA显卡,Docker也配好了,可一运行TensorFlow或PyTorch容器,却提示“找不到GPU设备”…

作者头像 李华
网站建设 2026/4/11 17:43:37

C++26协程、模式匹配落地在即(Clang 17早期实践报告)

第一章:C26新特性概览与Clang 17支持现状随着C标准的持续演进,C26正逐步成形,聚焦于提升语言表达力、运行效率与开发体验。尽管C26尚未正式发布,但ISO委员会已明确多个候选特性,部分已在主流编译器中进入实验性支持阶段…

作者头像 李华
网站建设 2026/4/10 7:02:45

transformer模型详解前馈神经网络的作用

Transformer模型中前馈神经网络的深层作用与工程实践 在当前大模型主导的技术浪潮中,我们早已习惯了谈论注意力机制如何颠覆序列建模,讨论多头注意力如何捕捉长距离依赖。但有一个组件始终默默无闻地支撑着整个架构——那就是前馈神经网络(Fe…

作者头像 李华
网站建设 2026/4/10 22:51:55

transformer模型详解自注意力机制的数学原理与实现

Transformer模型详解:自注意力机制的数学原理与实现 在深度学习迅猛发展的今天,自然语言处理任务早已不再依赖传统的循环神经网络(RNN)或卷积结构来建模序列数据。2017年,Google提出的 Transformer 架构彻底改变了这一…

作者头像 李华
网站建设 2026/4/10 20:59:32

GitHub Pages免费托管你的AI技术博客(含TensorFlow案例)

GitHub Pages 免费托管你的 AI 技术博客(含 TensorFlow 案例) 在今天,一个开发者的技术影响力不再仅仅取决于他写了多少代码,而更在于他能否清晰地表达、有效地传播自己的思考与实践。尤其是人工智能领域,模型的训练过…

作者头像 李华
网站建设 2026/4/15 4:30:02

初学者必看的大模型微调指南,从SFT到RL的实操精髓

这两年AI大模型的发展速度简直超出想象,我国超10亿参数的大模型一年之内就突破了100个,现在还在持续迭代发掘中。时代在瞬息万变,与其在传统行业里停滞不前,不如尝试拥抱新兴行业,而AI大模型恰恰是这两年的核心风口。据…

作者头像 李华