git:如何在情况不敏感的文件系统上结帐分支?git认为我在工作树中有未跟踪的文件,而我却没有


nowaker@nwkr-newmbp ~/projects/my-project (git)-[version-pin] % git checkout master
error: The following untracked working tree files would be overwritten by checkout:
    Readme.md
Please move or remove them before you switch branches.
Aborting
% git status
On branch version-pin
nothing to commit, working tree clean

当前分支和主人之间的唯一区别是,我将文件名从readme.md重命名为当前分支上的readme.md。master仍然具有readme.md。因为默认的Mac OSX文件系统被格式化为情况不敏感,所以Git认为我在工作树中没有跟踪文件。

围绕此问题的最好方法是什么?

使用git checkout --force

% git checkout master --force
Switched to branch 'master'
Your branch is up to date with 'origin/master'.

结帐https://git-scm.com/docs/git-config#documentation/git-config.txt-coreignorecase

您可能想更改git config

git config --global core.ignorecase true

如果在可预见的将来不会更改两个文件,则可以使用git update-index --assume-unchanged $pathgit update-index --skip-worktree $path来抑制错误。稍后,您可以使用--no-assume-unchanged--no-skip-worktree取消效果。

但是,最好的方法是重命名其中一个名称,并在案例敏感系统上提交更改。

最新更新