3

我想在本地重命名我的存储库中的文件。所以我这样做:

git mv -f hashpq.py HashPQ.py

得到这个:

warning: destination exists; will overwrite!

然后我通过以下方式获取 git 的状态:

git status

并得到这个响应:

# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   deleted:    hashpq.py
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#   hashpq.py

但是在我列出我的目录之后:

ls

我有这个:

CHANGLELOG  hashpq.py  NEXTPLAN  README  TODO

我仍然有 hashpq.py 与以前的名称保持不变。如何将文件重命名为 HashPQ.py?

4

3 回答 3

7

尝试将其重命名为某个临时名称,然后重命名为您想要的名称:

git mv hashpq.py _hashpq.py
git mv _hashpq.py HashPQ.py
git commit

mv当文件系统不区分大小写时,这与常规命令的行为相同。

于 2012-05-15T06:47:42.380 回答
1

您不再需要-fgit 2.0.1(2014 年 6 月 25 日)。

Agit mv hashpq.py HashPQ.py仅适用于不区分大小写的操作系统,如David Turner的提交 baa37bf中所述( dturner-tw

mv:允许重命名以修复不区分大小写的文件系统的大小写

" git mv hello.txt Hello.txt" 在不区分大小写的文件系统上总是会触发 " destination already exists" 错误,因为这两个名称从文件系统的角度来看是指同一个路径,并且需要用户--force在更正索引中记录的路径的大小写时给出 " "下一次提交。

检测这种情况并允许它而不需要“ --force”。

于 2014-07-27T08:04:11.683 回答
0

我的文件系统是 NTFS,你知道它基本上对文件名不区分大小写。因此,我需要先将其更改为 asghar.py,然后将其更改为 HashPQ.py。

谢谢大家。

于 2012-05-17T13:05:35.750 回答