今天我点了这个:
% git checkout another_branch
error: The following untracked working tree files would be overwritten by checkout:
__version__.txt
alembic.ini
alembic/README
alembic/env.py
alembic/script.py.mako
folder1/file1
folder2/file2
....
Please move or remove them before you can switch branches.
Aborting
好的,我将删除未跟踪的文件:
% git clean -f
Not removing alembic/
Not removing tools/maintenance/
但是,似乎并未删除所有未跟踪的文件:
% git checkout another_branch
error: The following untracked working tree files would be overwritten by checkout:
alembic/README
alembic/env.py
alembic/script.py.mako
Please move or remove them before you can switch branches.
Aborting
奇怪的是,首先git checkout another_branch
git知道后来抱怨的那些特定的未跟踪文件(alembic/README
,alembic/env.py
,alembic/script.py.mako
)。
那么为什么git没有删除它们呢?
答案 0 :(得分:1)
有两种未跟踪的文件:未跟踪的文件和被忽略的文件。
以git clean
运行时(-f
只是为了覆盖“安全”配置选项),git只会删除未跟踪的文件,当以git clean -x
运行时,它会删除未跟踪的文件忽略了文件。
对于结帐问题,它可能是由两个分支中的不同.gitignore
文件触发的。
答案 1 :(得分:0)
目录是否包含.git
个子目录或文件?
-f, - force
如果Git配置变量clean.requireForce未设置为false,则为git clean将拒绝删除文件或目录,除非给出-f,-n或-i。混帐 将拒绝删除.git子目录或文件的目录,除非秒 -f给出。这也影响了git子模块的存储区域 除非给出-f两次,否则不会删除.git / modules /下的子模块。