撤消推送到文件的更改

Mr_*_*Mac 5 git git-revert git-reset

我最近在远程存储库中推送了项目更改的提交。我刚刚发现我通常不提交更改的文件之一被包含在内,因为它可能包含敏感信息。

我想撤消对该文件的提交更改(到最后一个状态),而不丢失其他文件中提交的更改。

由此:

  • 更改文件敏感 -- ++
  • 更改文件1
  • 更改文件2
  • 新文件3
  • 新文件4

对此:

  • 更改文件1
  • 更改文件2
  • 新文件3
  • 新文件4

目前,只有我有权访问该存储库,因此重写历史记录没有问题,因此当我授予对该远程存储库的访问权限时,他们不会在历史记录中看到敏感信息。那么,我该怎么做呢?

kai*_*toy 7

  1. git reset --soft HEAD^撤消最后一次提交,将最后一次提交所做的所有更改保留在索引中。
  2. git checkout HEAD <path to FileSensitive>取消暂存并放弃对 FileSensitive 的更改。(请注意,此命令会丢失 FileSensitive 上的更改。)
  3. git commitgit push -f更新远程仓库。