git reset --hard HEAD
据我所知,当我跑步时,应该将其重置为原始版本。不幸的是,它git status
显示了一大堆未跟踪文件,从而使文件无处不在。
您如何告诉git“只需将其完全拉回上一次拉动中的内容,仅此而已”
git reset --hard HEAD
据我所知,当我跑步时,应该将其重置为原始版本。不幸的是,它git status
显示了一大堆未跟踪文件,从而使文件无处不在。
您如何告诉git“只需将其完全拉回上一次拉动中的内容,仅此而已”
Answers:
您必须使用它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
-x
如果您要删除.gitignored文件并返回原始状态。
-n
到测试将首先被删除。将所有这些参数合并为一个参数:-dfn
git clean -qfdx
这里。删除所有内容并静默执行。
-d -f
可以decalred两次-dff
了-d -f -f
,这将删除所有未经跟踪的目录,包括保护未被跟踪的目录。
git reset --hard && git clean -dfx
或者,zsh提供了“ gpristine”别名:
alias gpristine='git reset --hard && git clean -dfx'
这真的很方便。
如果要处理分叉的仓库,请确保从正确的仓库/分支获取并重置,例如:
git fetch upstream && git reset --hard upstream/master && git clean -df
-x
如果您刚刚克隆了存储库,它还会使用删除类似的文件。如果那是您想要的,那就完美了。如果您只想删除未跟踪的文件,则删除该-x
选项效果很好。
gpristine
用户互动方式:
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仅检查其作用。
git-clean
用于在工作树中删除未跟踪的文件。以下是一些可以与git clean
命令一起使用的选项(简要)。
-d
未指定路径时使用。因此git递归到未跟踪的目录中将其删除。
-f/--force
删除嵌套的未跟踪文件。
-i/--interactive
显示将要执行的操作并以交互方式清理文件。
-n/--dry-run
在不删除任何内容的情况下显示会发生的情况。
-x
忽略文件
示例:git clean -f -d
->删除当前目录中所有子目录中所有未跟踪的文件。
您可能在某个时候进行了软重置,可以通过执行以下操作解决此问题
git add .
git reset --hard HEAD~100
git pull
git reset --hard
重置您的索引,并将跟踪的文件恢复为与HEAD中相同的状态。它只留下未跟踪的文件。