git - 如何提取分支的最后几个提交并重置为以前的某个提交?
问题描述
我连续几次提交都搞砸了。
我想做的是:
- 提取最后几个提交到特定分支
- 将 master 恢复为正常提交
- 仔细修复该分支 (p1) 中的更改并不断将它们添加回主控。
它会解决问题吗?如果可以,如何实施这个计划?
解决方案
你的回购看起来像这样。
A - B - C - D [master]
假设 C 和 D 是您不希望在 master 上的提交。
首先,在与 master 相同的提交上创建一个新分支。
$ git branch feature
A - B - C - D [master]
[feature]
然后用 将 master 移回git reset
B。
$ git reset --hard B
A - B [master]
\
C - D [feature]
现在您可以签出并处理功能。
如果您没有重置并恢复怎么办?与移动分支标签的 reset 不同,revert 进行新的提交。
我们像以前一样开始。
A - B - C - D [master]
和以前一样,我们创建一个新分支来记住我们想要处理的提交。
$ git branch feature
A - B - C - D [master]
[feature]
我们没有移动 master 以使其不再包含有问题的提交,而是使用 revert 向 master 添加一个新的提交,该提交撤消了 C 和 D。
$ git revert C D
A - B - C - D [feature]
\
^D - ^C [master]
master 的内容将与提交 B 相同,但历史记录会更混乱。您通常不希望保留开发过程的工件,例如还原和简单的错字修复,它们对未来的开发人员没有用处,并使历史更难以理解。
因此,我建议将 revert 留给深埋的提交。
推荐阅读
- python - Python初学者,努力学习
- javascript - React Web 扩展错误:拒绝应用内联样式,因为它违反了以下内容安全性
- python - 将csv导入redis Set
- keyboard - 我一直在使用笔记本电脑,但出现了一些键盘问题(与按键有关)
- google-cloud-platform - 在 myaccount.google.com/permissions 撤销权限后如何从“不可用的凭据无法获取元数据”中恢复
- android - 解决 Kotlin 中 BigDecimal 的错误“未解决的参考。由于接收器类型不匹配,以下候选均不适用”
- javascript - 了解 JavaScript 中键的长度
- here-api - HERE Maps Routing API v8:街道属性
- flutter - Flutter中如何设置WidgetsApp的属性pageRouteBuilder
- android-studio - Android studio-无法使用意图启动新活动