我已经改变了被命名一些文件去首字母大写,如Name.jpg
到name.jpg
.Git无法识别此更改,我不得不删除文件并再次上传.在检查文件名的变化时,Git是否有区分大小写的方法?我没有对文件本身进行任何更改.
我试图重命名一个文件,使其具有与之前不同的大小写:
git mv src/collision/b2AABB.js src/collision/B2AABB.js
fatal: destination exists, source=src/collision/b2AABB.js, destination=src/collision/B2AABB.js
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,git对此有所帮助.我尝试使用普通的旧mv
命令重命名,但git没有选择重命名(作为重命名或新的未跟踪文件).
如何将文件更改为具有相同名称的不同大小写?我使用zsh 4.3.15使用git 1.7.9.1在Mac OS X 10.7.3上.
当我尝试将目录从FOO重命名为foo时,git mv FOO foo
我得到了
fatal: renaming 'FOO' failed: Invalid argument
Run Code Online (Sandbox Code Playgroud)
好.所以我试试git mv FOO foo2 && git mv foo2 foo
但当我尝试通过git commit .
我得到
# On branch master
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# foo
nothing added to commit but untracked files present (use "git add" to track)
Run Code Online (Sandbox Code Playgroud)
当我通过git add foo
无变化添加目录并git commit .
再次给我相同的消息.
我究竟做错了什么?我以为我使用区分大小写的系统(OSX)为什么我不能简单地重命名目录?
当我在不区分大小写的文件系统上使用C++开发时,我会想念诸如此类的问题
#include "File.h"
Run Code Online (Sandbox Code Playgroud)
如果在磁盘上它实际上是file.h
.
只有当我最终尝试在区分大小写的文件系统上编译代码时才会出现此问题.
如何在不区分大小写的文件系统(例如OSX的默认值)上模拟区分大小写?
编辑: 我正在寻找一种自动化解决方案,我现在可以通过"按下按钮"来运行.
在类的确切名称(包括大小写)之后严格命名C++文件似乎也是非常好的风格.所以SuperDuperClass会出现在SuperDuperClass.h中.需要较小的文件名的解决方案是不合适的.
我已经更改了我的git存储库中某些目录的大小写.然后我推了他们,注意到没有更新的情况.
然后我发现了这个问题: git mv并且只改变了目录的大小写
我按照建议使用:
git add -A
git commit --amend -m 'updated cases'
git push origin
Run Code Online (Sandbox Code Playgroud)
但git服务器返回成功而不是成功:
To git@github.com:kyogron/example.git
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'git@github.com:kyogron/example.git'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again. See the
'Note about fast-forwards' section of 'git push --help' for details.
Run Code Online (Sandbox Code Playgroud)
我现在可以做些什么来更新案例而不会在我的git仓库中破坏更多?
问候,
博多
PS:为了避免将来出现这个问题,您可以使用:
git config core.ignorecase false
Run Code Online (Sandbox Code Playgroud) git ×4
macos ×3
c++ ×1
file-rename ×1
filenames ×1
g++ ×1
git-commit ×1
git-config ×1
github ×1
hfs+ ×1
rename ×1
unix ×1