git reset --hard HEAD留下未跟踪的文件

当我运行git reset --hard HEAD ,它应该重置为你所提取的原始版本,据我所知。 不幸的是,它留下了文件,由于git status显示了一个未跟踪文件的大列表。 git

你怎么告诉git“只是把它带回到最后一次拉动中,没有更多,没有更少”? fetch


#1楼

若是您有文件,您仍然但愿保留: spa

git clean -di将进行交互式清理,只容许您删除再也不须要的文件/目录。 code


#2楼

您可能在某些时候进行了软重置,您能够经过执行来解决此问题 generator

git add .
git reset --hard HEAD~100
git pull

#3楼

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

#4楼

您必须使用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

#5楼

用户互动方式:

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以仅检查它将执行的操做。

相关文章
相关标签/搜索