错误变基:不存在的未跟踪文件将被覆盖
Error rebasing: non existing untracked files would be overwritten
我正在尝试将几个提交压缩为一个。所做的更改涉及更改文件内容,以及仅更改某些文件或其目录的文件名大小写。
当运行git status
,
nothing to commit, working tree clean
然而,当我 rebase -i <sha>
,
error: The following untracked working tree files would be overwritten by checkout:
myDir/file1
myDir/file2
...
myDir/fileN
Please move or remove them before you switch branches.
Aborting
在我试图压缩的提交历史的某个时刻,myDir
被重命名为 MyDir
但是,none 这些文件实际上在我的磁盘上。 运行 ls
显示新的 MyDir
,但没有 myDir
.
我怎样才能解决这个问题以便我可以变基?
fyi,.git/config
中的 [core]
中的 ignorecase = false
我在 Mac OSX
core.ignorecase
设置是 Git 跟踪 操作系统实际行为方式 的方式。如果 Git 可以创建一个名为 README
的文件,然后使用名称 readme
打开它,那么您的 OS 的文件系统 是 不区分大小写。这意味着您的OS不能创建两个单独的文件,它们的名称只是大小写不同。
这也适用于目录。如果 MyDir
存在,Git 尝试创建 myDir
以保存名为 myDir/file1
的文件等将失败(在某种程度上 Git 认为几乎无害,即目录已经存在),因为 OS 将只使用现有的 MyDir
。 Git 尝试写入 myDir/file1
然后将覆盖 MyDir/file1
文件。如果这些文件当前包含有价值的数据,您将希望将它们移开,正如 Git 所建议的那样。在任何情况下,您可能希望将整个 目录 MyDir
移开,以便 Git 可以创建一个拼写为 myDir
(小写 m
).
如果您的操作系统/文件系统确实不不区分大小写——如果您可以创建不同的文件,所有文件都命名为README
、readme
、ReadMe
等等——您可以更改 core.ignorecase
设置以通知 Git 这一事实。但是,如果您的系统不区分大小写,将其更改为 Git 将是一个坏主意。
我正在尝试将几个提交压缩为一个。所做的更改涉及更改文件内容,以及仅更改某些文件或其目录的文件名大小写。
当运行git status
,
nothing to commit, working tree clean
然而,当我 rebase -i <sha>
,
error: The following untracked working tree files would be overwritten by checkout:
myDir/file1
myDir/file2
...
myDir/fileN
Please move or remove them before you switch branches.
Aborting
在我试图压缩的提交历史的某个时刻,myDir
被重命名为 MyDir
但是,none 这些文件实际上在我的磁盘上。 运行 ls
显示新的 MyDir
,但没有 myDir
.
我怎样才能解决这个问题以便我可以变基?
fyi,.git/config
中的 [core]
中的 ignorecase = false
我在 Mac OSX
core.ignorecase
设置是 Git 跟踪 操作系统实际行为方式 的方式。如果 Git 可以创建一个名为 README
的文件,然后使用名称 readme
打开它,那么您的 OS 的文件系统 是 不区分大小写。这意味着您的OS不能创建两个单独的文件,它们的名称只是大小写不同。
这也适用于目录。如果 MyDir
存在,Git 尝试创建 myDir
以保存名为 myDir/file1
的文件等将失败(在某种程度上 Git 认为几乎无害,即目录已经存在),因为 OS 将只使用现有的 MyDir
。 Git 尝试写入 myDir/file1
然后将覆盖 MyDir/file1
文件。如果这些文件当前包含有价值的数据,您将希望将它们移开,正如 Git 所建议的那样。在任何情况下,您可能希望将整个 目录 MyDir
移开,以便 Git 可以创建一个拼写为 myDir
(小写 m
).
如果您的操作系统/文件系统确实不不区分大小写——如果您可以创建不同的文件,所有文件都命名为README
、readme
、ReadMe
等等——您可以更改 core.ignorecase
设置以通知 Git 这一事实。但是,如果您的系统不区分大小写,将其更改为 Git 将是一个坏主意。