我想编写一个需要干净工作目录的脚本。我想确保任何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
,但是如果没有任何反对意见会导致错误,我不想处理。此外,由于这将是一个自动脚本,我不想知道可能还有其他状态,我可能没有考虑。
我需要一种万无一失的方法将我的工作目录恢复到一个原始状态,以便我可以毫无失败地执行任何我想要的命令。
答案 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]