git checkout master
git reset --hard 94b90dc1121ce477131fa60ffdc234591554b6c8
git push -f origin master
がcommmandsの説明だ...
まず、あなたはmasterブランチ上にあるので、マスターにごHEADポイントようcheckout
コマンドを使用していることを確認してみましょう。
HEAD
とは何ですか? これは基本的に、Gitが現在Gitツリーにいる場所を指し示すポインタです。
実際、HEADやブランチのような概念のほとんどは、ツリー内の異なるポイントへのポインタに過ぎません。 コマンドラインからgitk
を実行して、素晴らしいグラフィック形式のツリーを表示します。
次に、元の質問にあった正確なコミットへのHEADポインタをreset
としましょう。これは、基本的にファイルシステムのファイルをコミットするようにします。
あなたは素晴らしい仕事やコミットがまだサーバーにプッシュされていない場合、これが "到達不能"になることがあります。 "このコマンドからコミットすると、普通はreflog
を使って戻すことができます。
最後に、マスターブランチのローカルステートをGitHubのマスターブランチにプッシュします。ブランチの履歴を書き直しているので、Gitに "強制"させる必要があるので、-fがそこにあります。
私はその変更を知りませんでした。私は、リモートコミットが参照されないようにするrefspecを使ったプッシュは、それが適用される前に '-f'オプションを必要とすると思います。 –
[Gitを使用して特定のリビジョンに特定のファイルをリセットまたは元に戻すことができますか?](http://stackoverflow.com/questions/215718/reset-or-revert-a-specific-file-to-a-specific- revision-using-git) – ErTR