クリーンな作業ディレクトリが必要なスクリプトを作成したいと思います。私は、リベース、マージ、または正しく終了しなかったかもしれない何かが私の作業ディレクトリから完全になくなっていることを確認したい。Git:すべての操作を中止してクリーン作業ディレクトリを取得する
git reset --hard
はマージする必要があります。git rebase --abort
はリベースに使用できますが、リバーティングやチェリーピッキングなどの他の状態もあります。私の作業ディレクトリをクリーンな状態にするために、こうしたイベントをすべてクリアする確実な方法はありますか?
EDIT:たとえば
:
((5d8999f...))
$ git rebase develop
(detached HEAD|REBASE 1/3)
$ git reset --hard
(detached HEAD|REBASE 1/3)
$ git checkout HEAD -- .
(detached HEAD|REBASE 1/3)
$ git status
rebase in progress; onto 41e6808
You are currently rebasing.
(all conflicts fixed: run "git rebase --continue")
私はgit rebase --abort
を行うことができますことを知っているが、その上で起こって何のリベースがない場合は、エラーが発生します、私はではないです対処の気分。また、これは自動スクリプトであるため、私が考慮していないかもしれない他の状態があることを知りたくありません。
作業ディレクトリを元の状態に戻して、私が失敗することなくすべてのコマンドを実行できるようにするには、簡単な方法が必要です。
これが不十分です。私はすべてのリベース/マージ/リバートを削除したい - untrackedファイルではない。 –
これで、「ダーティ」ブランチを削除し、元のブランチをチェックアウトするだけで、ブランチの内容がクリアされます。 'git reflog'を使う別の方法では、ここでそれについて読んでください: http://stackoverflow.com/questions/34519665/how-to-move-head-back-to-a-previous-location-detached-head/34519716#34519716 – CodeWizard
あなたの質問に答えると、私は答えを偶然に更新します – CodeWizard