将旧更改移出主分支 [重复]

Posted

技术标签:

【中文标题】将旧更改移出主分支 [重复]【英文标题】:Move Old Changes Off Master Branch [duplicate] 【发布时间】:2014-12-14 17:58:20 【问题描述】:

我对我的主 git 分支进行了一些提交,并添加了一些错误代码,我想摆脱这些代码。

Commit 1
Commit 2
Commit 3

我想保留提交 2,并摆脱提交 1 和 3 中所做的更改。提交 2 和提交 1,3 没有交集。此外值得指出的是,提交 1 和 3 的所有更改都仅限于特定目录中的几个文件,而提交 2 也没有涉及这些文件。

我如何用 git 做到这一点?

【问题讨论】:

提交已被推送到远程 查找git revert 【参考方案1】:

你应该使用交互式 git rebase:

git rebase -i HEAD~3

您将看到 3 个提交的列表。 删除不需要提交的行并保存并退出编辑器。 Git 将执行 rebase 操作并删除提交

如果您已将您的通道推送到上游远程,您将需要执行强制推送,即强制覆盖历史记录。 请记住,Git 中只有一条规则——不要覆盖已发布的历史记录。 当您在某个项目上与许多人合作时,这一点尤为重要。在这种情况下,如果您推送了一个错误的提交,我建议您使用

git revert commitID 

或者只是修复错误并在提交3之上提交修复

【讨论】:

以上是关于将旧更改移出主分支 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用 master 分支的最新更改更新您的分支 [重复]

在一个分支中获取我更改的所有文件[重复]

更改 git 合并分支冲突消息 [重复]

如何将我当前的更改提交到 Git 中的不同分支 [重复]

更新被拒绝,因为您当前分支的尖端在提示后面:它的远程对应部分。集成远程更改(例如 [重复]

本地分支在没有明显原因的情况下显示未暂存的更改和未跟踪的文件[重复]