当我运行git reset --hard HEAD ,它应该重置为你所提取的原始版本,据我所知。 不幸的是,它留下了文件,因为git status显示了一个未跟踪文件的大列表。
你怎么告诉git“只是把它带回到最后一次拉动中,没有更多,没有更少”?
#1楼
如果您有文件,您仍然希望保留:
git clean -di将进行交互式清理,只允许您删除不再需要的文件/目录。
#2楼
您可能在某些时候进行了软重置,您可以通过执行来解决此问题
git add .
git reset --hard HEAD~100
git pull
#3楼
git reset --hard && git clean -dfx
或者,zsh提供'gpristine'别名:
alias gpristine='git reset --hard && git clean -dfx'
这真的很方便。
如果使用forked repo,请确保从正确的repo / branch获取和重置,例如:
git fetch upstream && git reset --hard upstream/master && git clean -df
#4楼
您必须使用git clean -f -d来删除工作副本中未跟踪的文件和目录。
如果需要将整个存储库重置为master(包括所有git子模块),请运行以下脚本:
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以仅检查它将执行的操作。
来源:oschina
链接:https://my.oschina.net/u/3797416/blog/3158109