2016-07-07 13 views
1

クリーンな作業ディレクトリが必要なスクリプトを作成したいと思います。私は、リベース、マージ、または正しく終了しなかったかもしれない何かが私の作業ディレクトリから完全になくなっていることを確認したい。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を行うことができますことを知っているが、その上で起こって何のリベースがない場合は、エラーが発生します、私はではないです対処の気分。また、これは自動スクリプトであるため、私が考慮していないかもしれない他の状態があることを知りたくありません。

作業ディレクトリを元の状態に戻して、私が失敗することなくすべてのコマンドを実行できるようにするには、簡単な方法が必要です。

答えて

0

は私の作業ディレクトリから完全になくなっています。

git clean -Xfd 
git clean -xfd 

# you need to use the 2 different X cases: 
git clean –Xfd [Remove only files ignored by Git] 
git clean –xfd [removing all untracked files] 
+0

これが不十分です。私はすべてのリベース/マージ/リバートを削除したい - untrackedファイルではない。 –

+0

これで、「ダーティ」ブランチを削除し、元のブランチをチェックアウトするだけで、ブランチの内容がクリアされます。 'git reflog'を使う別の方法では、ここでそれについて読んでください: http://stackoverflow.com/questions/34519665/how-to-move-head-back-to-a-previous-location-detached-head/34519716#34519716 – CodeWizard

+0

あなたの質問に答えると、私は答えを偶然に更新します – CodeWizard

関連する問題