Git:中止所有操作以获得清洁工作目录

时间:2016-07-07 19:45:14

标签: git git-rebase

我想编写一个需要干净工作目录的脚本。我想确保任何rebase,merges或其他任何可能没有正确结束的内容完全从我的工作目录中删除。

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,但是如果没有任何反对意见会导致错误,我不想处理。此外,由于这将是一个自动脚本,我不想知道可能还有其他状态,我可能没有考虑。

我需要一种万无一失的方法将我的工作目录恢复到一个原始状态,以便我可以毫无失败地执行任何我想要的命令。

1 个答案:

答案 0 :(得分: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]