1

私は Git を初めて使用し、大きな間違いを犯しました。Gitは私にプロンプ​​トを出し続けました

git - rejected master -> master (non-fast-forward).

しかし、私はまだ以下を使用してコミットしました:

--force

これは悲惨なことで、プロジェクト全体が約 1 週間前の状態に戻りました。私は非常に多くの変更を失いました。以前のコミットに押し戻されたようです。新しいコミットの 1 つに戻る方法はありますか? 膨大な量の変更を行ったので、元に戻す必要があります。

4

2 に答える 2

4

コマンドを使用git reflogします。reflog コマンドを使用すると、ブランチの先頭で何が起こっているかについての優れた履歴が得られます。それを実行してから、元に戻したい状態を参照している行を見つけます。

コミットを見つけたら、特定のコミットを指すようにブランチをリセットします。

git reset --hard <commit_id>

この--hardオプションは、現在のブランチの HEAD を指定したコミットに戻します。

于 2012-12-10T05:17:58.560 に答える
0

あなたの質問から、あなたはgit push --force. これは非常に悪いです。これが機能するかどうかはわかりませんが、試してみる価値はあります。提案の順に進み、1 つの提案が機能しない場合にのみ、次の提案にスキップします。

  • masterでブランチに強制したコミット ハッシュを元に戻してみてくださいgit revert {commit_hash}。変更が復元されたと思われる場合は、もう一度実行してgit commitくださいgit push
  • 上記が機能せず、これが最後に行ったコミットである場合は、 を使用して 1 つのコミットに戻ることができますgit checkout HEAD~1。これにより、HEAD が 1 つのコミットに戻ります。戻る必要があるコミットの数を知る最も簡単な方法は、 を使用してgit reflog、どのコミットが最後に安定したものであったかを確認することです。この状態が正しいと思われる場合は、git commitとを実行しgit pushます。

git の警告を無視しないでください。私の経験では、git は絶対に必要なものについてのみ警告します。

于 2012-12-10T05:34:32.543 に答える