development带有文件的分支Config.json。new_development,在那里我重新命名Config.json,以config.json和承诺。development查看该分支中的某些内容是如何制作的。没有错误。new_development继续研究新事物。它显示一个错误:错误:以下未跟踪的工作树文件将被检出覆盖:
Run Code Online (Sandbox Code Playgroud)Config.json请在切换分支之前移动或移除它们。
中止
该文件实际上在 git 中。
我有这个 git 配置:
[core]
ignorecase = false
Run Code Online (Sandbox Code Playgroud)
当相同的文件有不同的大小写时,如何使分支切换工作?
Edw*_*son 10
当相同文件具有不同大小写时,如何使分支切换工作?
改core.ignoreCase回true.
您使用的是不区分大小写的文件系统;git 使用该core.ignoreCase设置来表明这一点。它是在您创建存储库时配置的(通过git init或通过git clone): git 查看您的文件系统以确定它是否区分大小写,并缓存该信息(在设置中core.ignoreCase),以便它不必执行此查找每一次操作。
这不是一个需要您更改的设置。
对于core.ignoreCase = false,在不区分大小写的文件系统上:
% git ls-tree HEAD
100644 blob 257cc5642cb1a054f08cc83f2d943e56fd3ebe99 foo
% git ls-tree branch
100644 blob bcc9cdfd113753edf279e92afd622b0f3bb05fbc FOO
% git checkout branch
error: The following untracked working tree files would be overwritten by checkout:
FOO
Please move or remove them before you switch branches.
Aborting
Run Code Online (Sandbox Code Playgroud)
这是因为我已经告诉 git 我的文件系统区分大小写。它查看我试图检查的树,发现有一个名为的文件FOO不在我当前的树中,然后在磁盘上查找是否存在同名的未跟踪工作文件。它是文件(实际上是文件HEADstatsFOOfoo,因为我们使用的是不区分大小写的文件系统)并意识到工作目录中有一个未跟踪的文件。
当然,除非你不这样做。你有文件foo。
如果我纠正这个问题,设置core.ignoreCase反映我的文件系统的实际情况,那么我可以正确切换分支:
% git config core.ignoreCase true
% git checkout branch
Switched to branch 'branch'
% git ls-tree HEAD
100644 blob bcc9cdfd113753edf279e92afd622b0f3bb05fbc FOO
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
752 次 |
| 最近记录: |