据我了解,当我运行时git reset --hard HEAD,它应该重置为您所拉取的原始版本。不幸的是,它会留下文件,因为它git status显示了大量未跟踪的文件。
git reset --hard HEAD
git status
您如何告诉 git “只需将其恢复到最后一次拉动中的内容,仅此而已,仅此而已”?
您必须使用git clean -f -d它来删除工作副本中未跟踪的文件和目录。您还可以添加-x删除被忽略的文件,在这个优秀的 SO 答案中有更多信息。
git clean -f -d
-x
如果您需要将带有子模块的整个存储库重置为 master 上的状态,请运行以下脚本:
git fetch origin master git checkout --force -B master origin/master git reset --hard git clean -fdx git submodule update --init --recursive --force git submodule foreach git fetch git submodule foreach git checkout --force -B master origin/master git submodule foreach git reset --hard git submodule foreach git clean -fdx