放弃已经推送到上游的提交

Kev*_*edy 1 git git-merge git-rebase git-reset

在一个新的项目中,我们开始直接在master上提交一个新的git团队.我们不小心对主人做了一些不好的提交,这些提交被推到了一个中央回购并被整个团队拉下来.

实现我们的错误,我们就创建了一个特性分支关闭之前提交坏提交.我们的团队现在很乐意在功能部门工作.

我们现在希望我们的分支包含功能分支中的确切代码,而不重新引入错误提交.

我看到该merge theirs选项已从更高版本的git中删除.那么丢弃糟糕提交并使我们的主人看起来与我们的功能分支完全相同的最佳方法是什么?

  • 合并?
  • 重启?
  • 变基?

The*_*kie 6

如果你想回到HEAD(前一个)你可以做:

git reset --hard HEAD@{1}
Run Code Online (Sandbox Code Playgroud)

注意:工作目录更改将丢失.

您也可以查看[git命令]:http://git-scm.com/book/en/Git-Basics-Undoing-Things

一旦您移回到没有错误提交的稳定版本,您可以将您的功能分支合并到主分支

git checkout master_branch
Run Code Online (Sandbox Code Playgroud)

您将使用上面的命令切换到master

git pull origin master
Run Code Online (Sandbox Code Playgroud)

拉主分支

git merge feature_branch
Run Code Online (Sandbox Code Playgroud)

这将使用功能分支更改来更新主服务器.现在两个分支都是一样的.