我在一个拥有混合Linux / MacOS开发人员的团队中工作。 MacOS不区分大小写,而Linux区分大小写。我有以下问题:
我的(MacOS)机器:
$ git checkout master
$ echo hi > MyModule.js
$ git commit -a -m 'Create MyModule.js'
$ git push origin master
$ git checkout -b other-work
... (do work)
Coworker(Linux)机器
$ git checkout master
$ git pull
$ git mv MyModule.js myModule.js
$ git commit -m 'Rename MyModule.js to myModule.js'
$ git push
我的(MacOS)机器
# Currently on branch other-work
$ git fetch
$ git checkout origin/master
error: The following untracked working tree files would be overwritten by checkout:
MyModule.js
# In order to resolve the issue, I have to resort to hackery:
$ rm MyModule.js
$ git checkout origin/master
$ git checkout -- myModule.js # Restore the rm'd file
我真的很想避免所有这些hackery。我希望我的MacOS git知道文件名中的大小写更改,以便我可以自由地在分支之间切换。我已经尝试将ignorecase
配置值设置为true和false,但这没有帮助。
答案 0 :(得分:2)
他们是我绕过这是一个格式化为区分大小写的分区。
这是我所有开发站点的服务地点。
答案 1 :(得分:0)
当切换分支时git checkout --force
做我想要的但是有点危险。
来自git docs:
-f, --force
When switching branches, proceed even if the index or the working tree differs from HEAD. This is used to throw away local changes.
When checking out paths from the index, do not fail upon unmerged entries; instead, unmerged entries are ignored.
答案 2 :(得分:0)