你如何摆脱git中未跟踪的补丁文件?我不明白如何让自己脱离这种状态。 运行的命令是:
git format-patch 'some-commit-hash'^..'some-commit-hash'
git am *.patch
虽然那并不完全符合我的意图,但我仍然遇到各种未跟踪的.patch文件。我已经尝试对分支进行硬重置,中止格式补丁。交换到其他分支机构。我在这里不知所措。
答案 0 :(得分:1)
确实,git reset --hard SHA1
不会删除未跟踪的文件。它只会重置指向SHA1 / commit / branch的HEAD
指针,并相应地覆盖索引和工作目录(只更改跟踪文件)。
如果你想以自动的方式“清理”你的工作目录 - 但有点过于激进,要注意删除文件无法取消 - 可能的解决办法就是运行:
git clean -d -x -n
# dry-run to inspect the untracked and ignored files
git clean -d -x -f
# to remove all these files
有关这些命令的更多信息,您可以看到例如git clean的文档以及"Discussion" section of the doc of git reset。
如果您想要更多灵活性,另一个解决方案是依靠git ls-files
来显示此类文件的列表,并可能使用bash管道将其链接。下面是一个这样的例子,其灵感来自this answer to "How can I see list of ignored files in git?":
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