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

Git 提交备注修改与合并、回退版本

备注写错了、写重了,想合并或者删除,上传到github时不小心上传了两次initial的备注?

方案一 : 仅修改最新的 Commit 备注

如果希望保留两次提交的历史,只是想把最新的e8a45a9备注改成更准确的描述(例如feat: add index.html and gitignore):

修改本地最新一次提交的备注git commit --amend -m "feat: add index.html and gitignore"

强制推送到 GitHubgit push --force-with-lease origin main

方案二:合并两次提交为一个(整理干净历史)

撤销最近一次提交,但保留文件修改git reset --soft HEAD~1

将修改重新追加到上一次提交中(同时修改备注)git commit --amend -m "Initial commit: add project files, README, and gitignore"

以下是方案二的操作,旨在解决项目在github上因为误操作上传了两个Initial commit的情况

PS D:\VScodeFile\web> git reset --soft HEAD~1 PS D:\VScodeFile\web> git commit --amend -m "Initial commit: add project files, README, and gitignore" [main edaeb74] Initial commit: add project files, README, and gitignore Author: xxxxxxxx <xxxxxxxxxx@qq.com> 3 files changed, 5618 insertions(+) create mode 100644 .gitignore create mode 100644 gemini-code-1787142561678.html create mode 100644 index.html PS D:\VScodeFile\web> git push --force-with-lease origin main Enumerating objects: 5, done. Counting objects: 100% (5/5), done. ... To https://github.com/Alxxxx/Alxxxx.git + e8a45a9...edaeb74 main -> main (forced update)

合并后:

回退版本

git log --oneline查看你的所有提交记录(vscode源代码管理可以直接看)

输出类似

a3b4c5d (HEAD -> main)修改了首页标题和CSS样式 7e8f9a0 优化了图片展示 1f2e3d4 第一次提交:初始化网站HTML页面 <-- 假设这是你的第一个版本

回退方式

方案 1:回去看看不破坏当前的最新代码(安全)

如果只是想临时看看第一个版本长什么样,检查完还想回到现在:

将代码库临时切换到第一个版本的 Hash 值 git checkout 第一个版本的 Hash 值 回到最新状态: git checkout main

方案 2 :彻底把本地代码回滚到最初形态

彻底重置本地代码到指定版本(注意:这会丢失第一个版本之后的所有未保存改动) git reset --hard 1f2e3d4

效果: 你的本地工作区彻底变成了第一次提交时的状态。
将回滚同步到 GitHub: 此时 GitHub 上已经有了更新的版本,直接git push会被拒绝。需要执行强制覆盖推送:
git push -f origin main
(注意:强制推送会把 GitHub 上的提交历史也一并擦除,让 GitHub 也回到第一个版本。)

方案 3:生成一个新的提交来撤销修改

回到第一个版本的代码状态,但又想保留中间做过的所有修改历史

# 撤销从第一个版本之后的所有修改 git revert --no-commit 1f2e3d4..HEAD # 提交这个恢复操作 git commit -m "回滚代码至初始版本" # 正常推送到 GitHub git push origin main

● 效果: 代码内容变回第一个版本,Git 历史记录里记录了某时刻执行了一次回滚.

http://www.cnnetsun.cn/news/4161005.html

相关文章:

  • Companion:免费把 700+ 设备塞进一块按键面板
  • AI旅游谁在买单?4类B端用户付费率超35%的ROI分析
  • 计算机考研408虚拟存储器真题精讲:从地址转换到实战解析
  • 从TCP三次握手到守护进程:Linux网络编程实战与日志分析
  • Python的weekday()一出手,星期几立马现原形
  • Java大厂面试通关:核心备战与实战策略
  • Meta Muse视频生成模型:从扩散模型原理到实践上手指南
  • 3 步给 GitHub 界面装中文:GitHub 汉化插件新手完整指南
  • 蓝桥杯国赛真题解析:和与乘积问题的O(n)算法与双指针技巧
  • 如何在手机上畅玩深海舰队 HTML5 版:GotoBrowser 完整功能与上手指南
  • 三步把 NCM 转成 MP3:ncmdump 免费本地无损转换教程
  • 智能汽车软件安全设计1
  • 病媒防控新利器:蚊子种类检测数据集(含YOLOv11n实战)
  • 2026 LLM大模型权威排行榜评测网站指南(持续更新)
  • 【AI接入大模型SDK】云端接入和本地部署模型的区别
  • K-Means、KNN、SVM三大算法原理与实战:从黑盒到白盒的建模指南
  • Win10网速优化全攻略:从诊断到硬件排查的完整解决方案
  • 24V3A欧规电源适配器选型指南:GS认证、纹波与工程实践
  • Linux学习19-moosefs部署与SBD共享磁盘
  • 美赛实战解题逻辑链:从题目翻译到代码实现的五维建模方法论
  • 免训练AI模型Nori:表格数据缺失值填充与预测实战指南
  • 数学建模国赛零基础冲省二:策略、流程与三天实战指南
  • 3 分钟跑通 NBA 官方数据:nba_api 从查到用全解
  • 如何用 PyVISA 让 Python 自动操控 GPIB / USB / TCP/IP 测量仪器
  • untrunc:不重新编码修复损坏 MP4/MOV 视频文件
  • LlamaIndex 系列【4】入门案例(阿里云百炼适配)
  • Java求职Day51:Spring Boot整合与JVM调优实战
  • Arcface-PyTorch 完整实操:5 步搞定人脸识别模型训练与 LFW 评估
  • OpenAI暂停Astra训练警示:AI前沿训练中的网络风险与安全实践
  • 贪心算法与组合编码实战:从双数极值配对到卡牌状态压缩