清除所有git修补程序

清除所有git修补程序,git,Git,如何在git中消除未跟踪的补丁文件?我不知道该如何摆脱这种状态。 运行的命令包括: git格式修补程序“some-commit-hash”^..“some-commit-hash” git am*.patch 虽然这并没有完全达到我的目的,但我仍然被各种未跟踪的.patch文件所困扰。我尝试了对分支进行硬重置,中止了格式修补程序。切换到其他分支。我在这里不知所措。事实上,git reset-hard SHA1不会删除未跟踪的文件。它只需将头指针重置为指定的SHA1/commit/branch,并

如何在git中消除未跟踪的补丁文件?我不知道该如何摆脱这种状态。 运行的命令包括:

git格式修补程序“some-commit-hash”^..“some-commit-hash”

git am*.patch

虽然这并没有完全达到我的目的,但我仍然被各种未跟踪的.patch文件所困扰。我尝试了对分支进行硬重置,中止了格式修补程序。切换到其他分支。我在这里不知所措。

事实上,git reset-hard SHA1不会删除未跟踪的文件。它只需将头指针重置为指定的SHA1/commit/branch,并相应地覆盖索引和工作目录,只在其中更改跟踪的文件

如果您想以一种自动但有点激进的方式清理工作目录,请注意不能取消删除文件,一种可能的解决方案是运行:

git clean -d -x -n
# dry-run to inspect the untracked and ignored files
git clean -d -x -f
# to remove all these files
有关这些命令的更多信息,请参见的文档以及

如果您想要更大的灵活性,另一个解决方案是依赖gitls文件来显示此类文件的列表,并可能使用bash管道将其链接起来。下面是一个这样的例子,其灵感来自:

这里有张便条。永远不要使用git clean,除非你是认真的。它将删除git之外的文件,并且不会返回…@Jose的确:执行git clean-d-x-f将删除所有未跟踪的文件,此操作无法取消。我在回答中已经提到GitClean的行为有点激进,并建议通过GitClean-d-x-n预先进行一次试运行。但是在你的评论之后,为了安全起见,我添加了一个额外的评论。
git ls-files --exclude-standard --ignored --others | grep '\.patch$'
# to display the ignored or untracked files with .patch file-extension
git ls-files --exclude-standard --ignored --others | grep '\.patch$' | xargs rm -v
# to remove these files