first-contributions 中的 Git 实战:把提交错误的 commit 移动到正确的分支
first-contributions 中的 Git 实战把提交错误的 commit 移动到正确的分支【免费下载链接】first-contributions✨ Help beginners to contribute to open source projects项目地址: https://gitcode.com/gh_mirrors/fi/first-contributions本篇指南基于 first-contributions 仓库的卡纳达语Kannada附加材料文档《commit ಅನ್ನು ಬೇರೆ branch ಗೆ ಸ್ಥಳಾಂತರಿಸುವುದು》moving-a-commit-to-a-different-branch.ka.md展开讲解一个每位开源贡献者都遇到过的经典失误在错误的分支上执行了git commit该如何把 commit 安全地搬到正确的分支。读完后你将掌握两套完整的命令行序列——把最新 commit 移入既有分支、把最新 commit 移入新建分支——并理解git reset --soft、git stash背后的工作机制与边界条件。场景commit 提交到了错误的分支在 first-contributions 这类每个贡献者一条分支的工作流中参见 卡纳达语 README 中的git checkout -b 分支名分支创建流程分支是隔离各自修改的基本单位。因此一旦你在master或main上误提交了本应属于功能分支的修改直接git push就会污染主干。该场景在仓库的英文原版文档 moving-a-commit-to-a-different-branch.md 中也被列为标准 Git 工作流场景之一卡纳达语译版完整继承了两套操作序列下文在此基础上逐条扩充讲解。序列一把最新 commit 移入一个已存在的分支原文档给出的命令序列如下引自 卡纳达语文档注释已补全为中文git reset HEAD~ --soft # 撤销最后一次 commitHEAD 回退一格但保留所有改动工作区与暂存区不变 git stash # 把当前暂存/工作区状态存入 stash 栈 git checkout name-of-the-correct-branch # 切换到正确的分支替换为实际分支名 git stash pop # 取出最近一次 stash 并自动将其从栈中移除 git add . # 将所有改动加入暂存区也可改为逐个文件 git add file git commit -m your message here # 在正确分支上重新提交执行完毕后你的修改就落在了正确的分支上原分支的 HEAD 已回退到 commit 之前。逐条解析为什么这套组合能工作git reset HEAD~ --soft——HEAD~表示当前 HEAD 的前一个 commit--soft是这里的关键它只移动分支指针不动暂存区index和工作区。也就是说 commit 被拆掉了但文件内容原封不动地回到已暂存状态。这与 undoing-a-commit.md 中讲解的git reset家族一致--soft只回退指针、--mixed默认还会清空暂存区、--hard则连工作区一并丢弃。本场景选择--soft正是为了在回退的同时零丢失地保留改动。git stash—— 回退后改动仍留在暂存区而携带未提交改动直接git checkout到其他分支时若目标分支存在同名文件且内容不同Git 会拒绝切换以防覆盖。先git stash把工作目录清场是规避此问题的稳妥做法。stash 的完整机制栈式存储、git stash list、apply与pop的区别、--index恢复暂存状态在仓库文档 stashing-a-file.md 中有系统讲解apply只恢复改动、条目留在栈中pop在恢复的同时删除该条目序列一用的正是后者。git checkout branch→git stash pop→git add .→git commit—— 到达目标分支后stash pop把改动重新应用回来从源码结构看stash 本质是一个保存工作区暂存区两个快照的引用pop相当于把该快照重新合并进当前工作目录因此已暂存状态不一定被保留——这正是随后还需要执行一次git add .或按原文档提示逐文件git add file的原因。最后git commit -m your message here在正确分支上重新固化这次提交。序列二把最新 commit 移入一个全新的分支当正确的分支尚不存在时原文档给出的第二条路线是git branch newbranch # 在当前 HEAD 位置创建新分支 newbranch分支指向包含误提交在内的全部历史 git reset --hard HEAD~# # 将当前分支回退 # 个 commit这些 commit 将从当前分支的历史中消失 git checkout newbranch # 切换到新分支新分支上仍保有这些 commit工作原理是先分叉、再回退git branch newbranch在回退之前执行所以新分支的指针停在了含误提交的位置完整保存了所有 commit随后git reset --hard HEAD~#只移动当前分支的指针把#个 commit 从当前分支的历史中剔除。#为要回退的 commit 数量例如回退 2 个就写HEAD~2回退 1 个就写HEAD~1原文档写作HEAD~#的占位形式resetting-a-branch.md 中的git reset --hard HEAD~2示例展示了同一回退语法。原文档特别强调的警告执行序列二前必须确保没有未提交的修改git reset --hard会丢弃工作区和暂存区中所有未固化的改动且不可恢复。这与 undoing-a-commit.md 的告诫一致——只在你真的确认要抛弃整个本地开发状态时才运行--hard。两套序列的适用前提与安全边界结合仓库文档可以归纳出几条重要的适用前提仅限本地、未推送的 commit。两套序列都改写了本地分支历史。仓库文档明确指出commit 一旦推送到共享远端执行git reset --hard会给仓库中所有人带来问题见 undoing-a-commit.md。若误提交已经 push应改用git revert生成一个反向提交相关方法见 reverting-a-commit.md。序列一面向最近一次提交序列二面向最近若干次提交。序列一的HEAD~固定回退一格需要移动多个连续 commit 时用序列二的HEAD~#参数化形式。序列一全程无数据丢失序列二不可逆。序列一使用--softstash任何一步出错都可以从 stash 栈找回改动git stash list/git stash apply序列二的--hard一旦执行未 commit 的内容即永久丢失。在 first-contributions 贡献流程中的位置。该仓库的贡献流程是 fork → clone → 建分支 → 修改Contributors.md→ commit → push → 提 Pull Request见 卡纳达语 README。误提交通常发生在本地建分支与 commit 阶段此时远端尚未同步正是本文两套序列的理想使用窗口。延伸first-contributions 仓库中的配套场景文档本文讲解的移动 commit只是 first-contributions 附加材料中的 Git 工作流场景之一同目录下的以下文档可作为配套参考均为 git_workflow_scenarios 目录场景文档移动 commit 到另一分支英文原版moving-a-commit-to-a-different-branch.md撤销本地 commitundoing-a-commit.mdstash 机制详解stashing-a-file.md回退分支resetting-a-branch.md回退单个 commitresetting-a-commit.md场景总目录additional-material.md卡纳达语版的其他场景翻译如 amending-a-commit.ka.md、keeping-your-fork-synced-with-this-repo.ka.md收录于 additional-material.ka.md 索引中可与本文互为参照。【免费下载链接】first-contributions✨ Help beginners to contribute to open source projects项目地址: https://gitcode.com/gh_mirrors/fi/first-contributions创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

构 Codex 的 Linear 回写链路,TaoToken 管 Key

构 Codex 的 Linear 回写链路,TaoToken 管 Key

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/21 4:00:30 阅读更多 →
Cursor 辅助编码保持效率,Base URL 配到 TaoToken 兼容通道

Cursor 辅助编码保持效率,Base URL 配到 TaoToken 兼容通道

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/20 17:21:52 阅读更多 →
双开 Trae 和 Codex 写代码,Base URL 填 TaoToken,TokenView 账单更清楚

双开 Trae 和 Codex 写代码,Base URL 填 TaoToken,TokenView 账单更清楚

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/20 18:31:53 阅读更多 →

最新新闻

PySnooper高级参数调优10例:custom_repr、max_variable_length、prefix、normalize、thread_info完全指南

PySnooper高级参数调优10例:custom_repr、max_variable_length、prefix、normalize、thread_info完全指南

PySnooper高级参数调优10例:custom_repr、max_variable_length、prefix、normalize、thread_info完全指南 【免费下载链接】PySnooper Never use print for debugging again 项目地址: https://gitcode.com/gh_mirrors/py/PySnooper PySnooper 是一个 Python…

2026/9/21 4:02:13 阅读更多 →
Foam 入门指南:在 VS Code 上构建基于 Wikilink 的个人知识管理系统

Foam 入门指南:在 VS Code 上构建基于 Wikilink 的个人知识管理系统

Foam 入门指南:在 VS Code 上构建基于 Wikilink 的个人知识管理系统 【免费下载链接】foam A personal knowledge management and sharing system for VSCode 项目地址: https://gitcode.com/gh_mirrors/fo/foam 本文是一份以 Foam 项目官方文档为主线的完整…

2026/9/21 4:02:13 阅读更多 →
Fleet 本地开发指南:用 fleetd-linux 构建并运行 Linux 版 fleetd Docker 容器

Fleet 本地开发指南:用 fleetd-linux 构建并运行 Linux 版 fleetd Docker 容器

后端前端企业应用运维网络安全 【免费下载链接】fleet Open device management 项目地址: https://gitcode.com/GitHub_Trending/fl/fleet 点击查看 免费下载 在 Fleet 的日常开发与测试中,常常需要快速模拟"一批连接到本地 Fleet 实例的 Linux 主…

2026/9/21 4:01:13 阅读更多 →
Material Components Web Tooltip 完整指南:安装、无障碍、定位算法与主题定制

Material Components Web Tooltip 完整指南:安装、无障碍、定位算法与主题定制

Material Components Web Tooltip 完整指南:安装、无障碍、定位算法与主题定制 【免费下载链接】material-components-web Modular and customizable Material Design UI components for the web 项目地址: https://gitcode.com/gh_mirrors/ma/material-component…

2026/9/21 4:00:13 阅读更多 →
Chrome Apps UDP 网络访问实战:基于 chrome-extensions-samples 的 UDP Echo 客户端示例解析

Chrome Apps UDP 网络访问实战:基于 chrome-extensions-samples 的 UDP Echo 客户端示例解析

Chrome Apps UDP 网络访问实战:基于 chrome-extensions-samples 的 UDP Echo 客户端示例解析 【免费下载链接】chrome-extensions-samples Chrome Extensions Samples 项目地址: https://gitcode.com/gh_mirrors/ch/chrome-extensions-samples 本指南以 chro…

2026/9/21 4:00:13 阅读更多 →
security-audit-skill伴生文件精读:Universal moves与Validation rules两大板块

security-audit-skill伴生文件精读:Universal moves与Validation rules两大板块

security-audit-skill伴生文件精读:Universal moves与Validation rules两大板块 【免费下载链接】security-audit-skill A coding-agent skill for multi-phase security audits with independently verified, machine-readable findings 项目地址: https://gitco…

2026/9/21 4:00:13 阅读更多 →

日新闻

agents-generator 决策矩阵全解析:从项目检测到 AGENTS.md 规则生成的 16 步判定流程

agents-generator 决策矩阵全解析:从项目检测到 AGENTS.md 规则生成的 16 步判定流程

agents-generator 决策矩阵全解析:从项目检测到 AGENTS.md 规则生成的 16 步判定流程 【免费下载链接】agentic-awesome-skills AAS Core is the local, agent-first control plane for complete catalog discovery, agent-owned selection, stack validation, and …

2026/9/21 0:00:01 阅读更多 →
gin-vue-admin 前端工具函数全景指南:src/utils 复用规范与源码级解析

gin-vue-admin 前端工具函数全景指南:src/utils 复用规范与源码级解析

gin-vue-admin 前端工具函数全景指南:src/utils 复用规范与源码级解析 【免费下载链接】gin-vue-admin 🚀ViteVue3Gin拥有AI辅助的基础开发平台,企业级业务AI开发解决方案,内置mcp辅助服务,内置skills管理,…

2026/9/21 0:00:01 阅读更多 →
Wox 全功能插件开发实战指南:基于 Python / Node.js 宿主与 WebSocket 的持久化插件体系

Wox 全功能插件开发实战指南:基于 Python / Node.js 宿主与 WebSocket 的持久化插件体系

桌面应用AI 应用插件系统 【免费下载链接】Wox A cross-platform launcher that simply works 项目地址: https://gitcode.com/gh_mirrors/wo/Wox 点击查看 免费下载 全功能插件(Full-featured Plugin)是 Wox 三类插件实现方式中能力最完整的…

2026/9/21 0:00:01 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/21 3:13:20 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/21 2:19:36 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/20 0:00:46 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/19 23:01:36 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/19 17:50:38 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/19 23:35:34 阅读更多 →