我收到“以下未跟踪的工作树文件将被结帐覆盖...请在切换分支之前移动或删除它们”错误。
常见的修复似乎是 git clean
当我输入时,我没有收到任何错误,但没有任何反应。当我去检查另一个分支时,我遇到了与上面相同的错误。
任何关于为什么git clean什么都不做的理由?
更新:
更多信息。git -n并git -f做完全相同的...没有。
Ven*_*n R 13
如果要清理未跟踪的文件,请使用以下命令。但是,在运行之前要小心,因为它会擦除您的工作区域、索引、HEAD。
git reset --hard
Run Code Online (Sandbox Code Playgroud)
我认为您的工作区域中有未跟踪的目录或 gitignore 的忽略文件(构建文件)。您可以通过以下命令删除它们。
git clean -dfx
Run Code Online (Sandbox Code Playgroud)
-d
除未跟踪的文件外,还删除未跟踪的目录。如果未跟踪的目录由不同的 Git 存储库管理,则默认情况下不会将其删除。如果您真的想删除这样的目录,请使用 -f 选项两次。
-f --force
如果 Git 配置变量 clean.requireForce 没有设置为 false,除非给定 -f、-n 或 -i,否则 git clean 将拒绝删除文件或目录。Git 将拒绝删除带有 .git 子目录或文件的目录,除非给出第二个 -f。
-X
不要使用从 .gitignore(每个目录)> 和 $GIT_DIR/info/exclude 读取的标准忽略规则,但仍然使用 -e > 选项给出的忽略规则。这允许删除所有未跟踪的文件,包括构建产品。这可以用于(可能与 git reset 结合使用)来创建原始工作目录来测试干净的构建。
有关更多信息,请使用git clean
与指定的其他注释一样,您确实需要添加 -f 标志。
但是您可能遇到问题并不是因为您没有指定 --force,而是因为您位于不同的子目录中。
例如,如果我的 git 存储库位于 /myrepo/.git
和子目录 /myrepo/untracked/file.txt 中的未跟踪文件,
但我终端的当前工作目录是 /myrepo/src/。
git clean -fd 将不起作用。在运行命令之前,您需要 cd 到项目根目录。
TL;DR: git clean -fd 显然只清除终端当前工作目录及其下方的未跟踪文件和目录。
在我看来你需要指定-n或-f。从手册页:
OPTIONS
-f, --force
If the Git configuration variable clean.requireForce is not set to false, git clean will refuse to delete files or
directories unless given -f, -n or -i. Git will refuse to delete directories with .git sub directory or file unless a second
-f is given.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7328 次 |
| 最近记录: |