撤销已推送到文件的更改

4
我最近向远程仓库提交了一个项目更改的commit,但是我发现其中一个文件被包含在内,而我通常不会提交它的更改,因为它可能包含敏感信息。
我希望撤销对该文件的更改(回到上一次状态),同时不要丢失其他文件的提交更改。
从这个:
  • 更改文件Sensitive -- ++
  • 更改文件1
  • 更改文件2
  • 新建文件3
  • 新建文件4
到这个:
  • 更改文件1
  • 更改文件2
  • 新建文件3
  • 新建文件4
目前,只有我可以访问该仓库,所以重写历史没有问题,当我授权给远程仓库时,他们不会在历史记录中看到敏感信息。那么,我该怎么做呢?

您可以将您的代码库回滚到之前的 commit id,只需按照以下步骤操作:https://dev59.com/WXA65IYBdhLWcg3wxRs8。 - Hackerman
https://dev59.com/ulsW5IYBdhLWcg3w2qNM#34519716 - CodeWizard
1个回答

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接