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

git还原操作

下面是对这两个命令的详细解释:


1. git reset --hard

作用:

  • 将当前分支的所有文件和提交记录还原到指定的某个提交(默认为最新提交)。
  • 所有未保存的修改和未提交的内容会被清除,无法恢复!

常见用法:

bash

git reset --hard HEAD
  • 把本地仓库还原到最新提交状态,所有本地的修改(包括已暂存但未提交的)都会被丢弃。

例子: 假如你改了代码还没提交,或者提交了但觉得不对,都可以用 git reset --hard HEAD 回到最近一次提交的状态。

注意:

  • **不会删除未跟踪(untracked)的文件。**未被 git 管理的新文件需要用 git clean -fd 清理。

2. git pull

作用:

  • 从远程仓库获取最新的代码,并把它合并到你当前的分支。
  • 相当于依次执行了:
    1. git fetch(拉取最新远程代码)
    2. git merge(合并到本地分支)

常见用法:

bash

git pull origin main
  • 从远程 origin 仓库的 main 分支拉取代码并合并到本地的当前分支。

例子: 你和同事一起开发时,同事提交了新代码到远程仓库,你需要用 git pull 把最新代码同步到你的本地仓库。

注意:

  • 如果本地和远程代码有冲突,需要手动解决冲突后再提交。

总结

  • git reset --hard强制还原代码到某个状态,不可恢复,危险操作。
  • git pull同步远程最新代码到本地,安全常用。

下面是一些同步最新远程分支代码的常用 Git 命令,以及它们的功能简要说明:


常用同步远程分支代码的 Git 命令

命令功能说明适用场景
git fetch获取远程最新分支信息和提交,但不自动合并到本地分支只想更新远程信息,不影响本地代码
git pull获取远程最新分支代码,并自动合并到当前分支本地分支需要和远程分支保持同步,推荐常用
git pull --rebase获取远程最新分支代码,并将本地提交“挪到”远程提交之后,避免多余的 merge commit本地有提交但想保持提交历史整洁
git merge origin/<branch>把远程分支代码合并到本地当前分支,需要先 git fetch需要手动控制合并流程
git rebase origin/<branch>把本地提交“移动”到远程分支最新提交之后,提交历史更线性习惯用 rebase 保持干净历史

实用命令示例

  1. 仅获取远程分支最新信息(不合并)

    bash

    git fetch origin
    
  2. 拉取并合并远程分支(常用)

    bash

    git pull origin <branch>
    
  3. 拉取并用 rebase 合并(让提交历史更整洁)

    bash

    git pull --rebase origin <branch>
    
  4. 先 fetch 后 merge(手动合并)

    bash

    git fetch origin
    git merge origin/<branch>
    
  5. 先 fetch 后 rebase(手动 rebase)

    bash

    git fetch origin
    git rebase origin/<branch>
    

补充知识

  • <branch> 通常是你要同步的分支名,比如 mainmasterdevelop 或功能分支名。
  • pull = fetch + merge;而 pull --rebase = fetch + rebase
http://www.xdnf.cn/news/19920.html

相关文章:

  • ultralytics/nn/tasks.py源码学习笔记——核心函数parse_model
  • day2today3夏暮客的Python之路
  • 「逆向思维」的胜利:从“挤不上电梯”到“高效学习”的顶级心法
  • 2025年度GEO优化公司市场研究报告:技术驱动下的用户口碑洞察
  • Git的强软硬回退(三)
  • Docmost:面向现代团队的企业级Wiki
  • 鸿蒙:状态管理V2(V2装饰器的学习)
  • 超详细教程:一招一式教你将本地项目上传至GitHub
  • 【系统架构设计(13)】项目管理上:盈亏平衡分析与进度管理
  • SpringBoot 网络流量抓包与分析系统
  • 【RNN-LSTM-GRU】第一篇 序列建模基础:理解数据的“顺序”之力
  • Mac 使用 softhsm
  • 革新光纤锁模技术:《Light: Science Applications》报道纳米腔增强型可饱和吸收器
  • 质量管理里常见的缩写QA、QC、QE都是什么意思?
  • 彻底搞懂面向对象分析(OOA)
  • Linux内存管理章节一:深入浅出Linux内存管理:从物理内存到ARM32的用户与内核空间
  • 逻辑回归基础
  • .NET GcPDF V8.2 新版本:人工智能 PDF 处理
  • Spring Boot 根据配置优雅的决定实现类
  • Meshroom 2025.1.0安装及使用参数模板介绍:二维图片转三维重建
  • 因为对象装箱拆箱导致的空指针异常
  • C#强制类型转换(显示转换)和安全类型转换
  • 野火STM32Modbus主机读取寄存器/线圈失败(三)-尝试将存贮事件的地方改成数组(非必要解决方案)(附源码)
  • VBA中类的解读及应用第二十七讲:利用类完成查找的方案-5
  • SVT-AV1 svt_aom_motion_estimation_kernel 函数分析
  • 详细学习计划
  • 百度前端社招面经
  • 云手机运行是否消耗自身流量?
  • Docker(④Shell脚本)
  • 【RNN-LSTM-GRU】第五篇 序列模型实战指南:从选型到优化与前沿探索