当我运行git reset --hard HEAD
,它应该重置为你所提取的原始版本,据我所知。 不幸的是,它留下了文件,由于git status
显示了一个未跟踪文件的大列表。 git
你怎么告诉git“只是把它带回到最后一次拉动中,没有更多,没有更少”? fetch
若是您有文件,您仍然但愿保留: spa
git clean -di
将进行交互式清理,只容许您删除再也不须要的文件/目录。 code
您可能在某些时候进行了软重置,您能够经过执行来解决此问题 generator
git add . git reset --hard HEAD~100 git pull
git reset --hard && git clean -dfx
或者,zsh提供'gpristine'别名: it
alias gpristine='git reset --hard && git clean -dfx'
这真的很方便。 zsh
若是使用forked repo,请确保从正确的repo / branch获取和重置,例如: ast
git fetch upstream && git reset --hard upstream/master && git clean -df
您必须使用git clean -f -d
来删除工做副本中未跟踪的文件和目录。 class
若是须要将整个存储库重置为master(包括全部git子模块),请运行如下脚本: stream
git reset --hard HEAD git clean -f -d git checkout master git fetch origin master git reset --hard origin/master git pull git submodule update git submodule update --init --recursive git submodule foreach git reset --hard HEAD git submodule foreach git clean -f -d git submodule foreach git submodule update --init --recursive git submodule foreach git fetch git submodule foreach git pull git status
用户互动方式:
git clean -i -fd Remove .classpath [y/N]? N Remove .gitignore [y/N]? N Remove .project [y/N]? N Remove .settings/ [y/N]? N Remove src/com/amazon/arsdumpgenerator/inspector/ [y/N]? y Remove src/com/amazon/arsdumpgenerator/manifest/ [y/N]? y Remove src/com/amazon/arsdumpgenerator/s3/ [y/N]? y Remove tst/com/amazon/arsdumpgenerator/manifest/ [y/N]? y Remove tst/com/amazon/arsdumpgenerator/s3/ [y/N]? y
-i用于互动
-f表明武力
-d用于目录
-x表示忽略的文件(若是须要,添加)
注意: 添加-n或--dry-run以仅检查它将执行的操做。