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 $path
或git update-index --skip-worktree $path
来抑制错误。稍后,您可以使用--no-assume-unchanged
或--no-skip-worktree
取消效果。
但是,最好的方法是重命名其中一个名称,并在案例敏感系统上提交更改。