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以僅檢查它將執行的操做。

相關文章
相關標籤/搜索