删除使用 git 推送的错误提交

Removing a bad commit pushed using git

我正在使用 BitBucket 进行一个项目。我一直能够 commit/push 我的所有代码,直到有一天我的供应商没有被忽略,不知道为什么。

为了修复,我不得不取消跟踪供应商文件夹。这样做导致我在存储库中的文件被删除,因为它不再被跟踪。

现在,每次我需要推送某些内容并执行 git 拉取操作时,它都会删除我的整个供应商文件夹。

我怎样才能删除这个提交并返回到一个好的提交?

下面是我的 git 日志,显示了合并等。我想回到这个哈希提交 (e5835fa),这是我在 "untrack vendor directory" 之前的良好提交。

* 66ef40d (HEAD, origin/master, origin/HEAD, master) finalized importing players from excel.
* cfa37b3 pushing import players code
* 3a8f272 implemented importing players from excel.
* 9cf59ad implemented importing players
* 188db12 implemented imprting for players oly from excel file
* 72c086a untrack vendor directory
* e5835fa refactoring chart  display
* a5ffd72 fixed offset on duplicate players started import tool for players and  teams.
* 349dfc0 divided the result by 2
* 27e2845 updqted the sql duplicate teams.
* 80b3741 format change.

回滚到指定的提交:

git reset --hard e5835fa

移动头部:

git reset --soft HEAD@{1}

提交此状态:

git commit -m "Rollback to e5835fa"

推送更改(如果需要):

git push