ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

first-contributions 提交到了错误的分支怎么办?如何用 git reset --soft 与 stash 把最近提交移到正确分支

2026/9/10 16:30:35 拓冰建站 浏览量
first-contributions 提交到了错误的分支怎么办?如何用 git reset --soft 与 stash 把最近提交移到正确分支 first-contributions 提交到了错误的分支怎么办如何用 git reset --soft 与 stash 把最近提交移到正确分支【免费下载链接】first-contributions✨ Help beginners to contribute to open source projects项目地址: https://gitcode.com/gh_mirrors/fi/first-contributions在 first-contributions 这类协作仓库里贡献代码时一个常见的失误是改完文件提交之后才发现提交落到了错误的分支上。此时不需要删掉重来——first-contributions 仓库的 moving-a-commit-to-a-different-branch.md 文档给出了一条现成的操作路径先用git reset的--soft形式撤销最近一次提交保留改动再用git stash把改动暂存起来切换到正确分支后恢复并提交。前提是你已经明确知道要移向哪个分支已存在的分支或需要新建的分支。把最近的提交移到已存在的分支这是文档给出的主路径依次执行git reset HEAD~ --soft这条命令是文档中的原命令用于撤销最后一次提交但把改动保留下来文档说明Undoes the last commit, but leaves the changes available。撤销后你的分支指针回到上一个提交改动仍在。git stash把工作目录的改动状态记录为一份 stash。执行后工作目录会被清空此时可以用git status确认下面输出来自 stashing-a-file.md 的文档示例$ git status # On branch master nothing to commit, working directory clean看到 working directory clean说明改动已经全部进了 stash可以安全切换分支。如果 stash 栈里有多份暂存可以用git stash list查看每一层的记录。git checkout name-of-the-correct-branch切换到目标分支把name-of-the-correct-branch替换成实际的正确分支名。git stash pop恢复栈中最新一份 stash并把它从栈中移除。git add .暂存改动文档提示也可以只添加个别文件git add file而不是.全量添加。git commit -m your message here保存并提交把your message here替换为实际的提交信息。文档的结论是此时你的改动已经在正确的分支上了。如何验证改动确实到了正确分支可以用 check-commit-log.md 中介绍的git log来核对。输出默认按时间倒序排列用-n限制条数只看最近的提交即可git log -n 5确认你刚才的提交出现在当前正确分支的日志里且原分支的日志不再包含这次提交任务完成。可选分支把最近的提交移到新分支如果目标分支还不存在同一篇文档给出了另一条路径——先建一个保留全部提交的新分支再把当前分支退回去git branch newbranch创建一个新分支把newbranch替换成你想要的分支名文档说明这会保存当前的所有提交。git reset --hard HEAD~#把当前分支回退#个提交把#替换为要回退的具体数量。注意文档的警告这些提交将从当前分支上消失these commits will be gone from it--hard形式不会保留工作区改动。git checkout newbranch切到刚才创建的新分支它会带着全部提交。文档对这条路径还有一句明确提醒任何未提交的改动都会丢失Any changes not committed will be LOST。执行git reset --hard前先确认工作区没有你想保留的未提交内容。限制与注意事项--soft与--hard是两种不同强度的 reset不要混用主路径用--soft正是为了保住改动新分支路径用--hard是因为新分支已经复制了提交可以安全丢弃当前分支上的副本。如果恢复 stash 时目标分支上已有与改动冲突的未提交修改git 会给出合并冲突需要先解决冲突再继续见 stashing-a-file.md。主路径针对的是最近一次提交如果要移动多个提交参考新分支路径中HEAD~#的回退数量写法并同样注意--hard的丢弃行为。完成迁移后原分支上多出的那个错误提交已经不在其日志中后续可以按 resetting-a-branch.md 的方式继续处理分支状态或直接在正确分支上推送你的贡献。【免费下载链接】first-contributions✨ Help beginners to contribute to open source projects项目地址: https://gitcode.com/gh_mirrors/fi/first-contributions创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考