2016-07-07 63 views
1

我想編寫一個需要乾淨的工作目錄的腳本。我想確保任何rebase,merges或其他可能沒有正確結束的內容都完全從我的工作目錄中刪除。Git:中止所有操作以獲得乾淨的工作目錄

git reset --hard應該合併工作,並git rebase --abort將工作rebase,但也有其他國家像恢復或櫻桃採摘以及。是否有任何確定的方法來清除所有這些事件,以使我的工作目錄進入一個乾淨的狀態?

編輯:

例如:

((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

這是不能令人滿意的。我想刪除任何rebase/merges/reverts - 而不是未跟蹤的文件。 –

+0

好吧,只需刪除「髒」分支並簽出原始分支,它將清除分支內容。另一種方式ID使用'git reflog',在這裏閱讀: http://stackoverflow.com/questions/34519665/how-to-move-head-back-to-a-previous-location-detached-head/34519716#34519716 – CodeWizard

+0

如果它回答你的問題,我會更新答案accordinally – CodeWizard

相關問題