Git でコミットされたファイルを元に戻す可能性はありますか? コミットを GitHub にプッシュしましたが、プッシュしたくないファイルがあることに気付きました (変更を完了していません)。
質問する
268634 次
7 に答える
206
更新:より安全な方法を追加
好ましい方法:
ファイルの以前の (変更されていない) 状態を確認します。ダブルダッシュに注意
git checkout HEAD^ -- /path/to/file
コミットします:
git commit -am "revert changes on this file, not finished with it yet"
押してください。力は必要ありません:
git push
未完成の作業に戻り、もう一度実行します (上向き矢印を 3 回):
git checkout HEAD^ -- /path/to/file
実質的に「コミット解除」:
リポジトリ HEAD の最後のコミットを変更するには、誤ってプッシュされた作業を難読化しますが、同僚はすでにプルしている可能性があり、白髪が生え、ローカル ブランチ ヘッドとの調整に多くの時間を費やす可能性があります。中央のもので:
最後のコミットからファイルの変更を削除するには:
ファイルを最後のコミット前の状態に戻すには、次のようにします。
git checkout HEAD^ /path/to/file
元に戻したファイルで最後のコミットを更新するには、次のようにします。
git commit --amend
更新されたコミットをリポジトリにプッシュするには、次のようにします。
git push -f
本当に、前述の推奨される方法を使用することを検討してください。
于 2014-02-26T12:25:20.243 に答える
116
リモート リポジトリからファイルを削除する場合は、最初に --cache オプションを使用してプロジェクトからファイルを削除してから、プッシュします。
git rm --cache /path/to/file
git commit -am "Remove file"
git push
(これは、ファイルがいくつかのコミットの前にリモート リポジトリに追加された場合でも機能します) プッシュしたくないファイル拡張子を .gitignore に追加することを忘れないでください。
于 2018-07-19T08:33:26.863 に答える