2016-11-10 140 views
0

我最近在遠程存儲庫中推送了項目更改的提交。 我剛剛發現其中一個通常不會提交其更改的文件,因爲它可能包含敏感信息。撤消將更改推送到文件

我想撤消對該文件的提交更改(到最後一個前一個狀態),而不會丟失其他文件中提交的更改。

從這:

  • 變化FileSensitive - ++
  • 更改文件1
  • 更改文件2
  • 新文件3
  • 新FILE4

要這樣:

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

就目前而言,只有我可以訪問該存儲庫,所以沒有問題要改寫歷史,所以當我允許訪問該遠程存儲庫,他們將不會在歷史中看到這些敏感信息。那麼,我該怎麼做?

+0

你可以rebase你的回購到以前的承諾id ..只是按照這個:http://stackoverflow.com/questions/3639115/reverting-to-a-specific-commit-based-on-commit-id -with-git – Hackerman

+0

http://stackoverflow.com/questions/34519665/how-to-move-head-back-to-a-previous-location-detached-head/34519716#34519716 – CodeWizard

回答

0
  1. git --soft reset HEAD^撤銷上次提交,保留索引中最後一次提交所做的所有更改。
  2. git checkout HEAD <path to FileSensitive>將取消並放棄FileSensitive上的更改。 (注意FileSensitive的更改由此命令丟失。)
  3. git commitgit push -f更新遠程回購。