gpt4 book ai didi

macos - git mv 并且只改变目录的大小写

转载 作者:IT王子 更新时间:2023-10-29 01:13:58 26 4
gpt4 key购买 nike

虽然我发现了类似的 question我没有找到问题的答案

当我尝试通过 git mv FOO foo 将目录从 FOO 重命名为 foo 时,我得到了

fatal: renaming 'FOO' failed: Invalid argument

好的。所以我尝试 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)

当我通过 git add foo 添加目录时,没有任何变化,git commit . 再次给我相同的消息。

我做错了什么?我以为我使用的是区分大小写的系统 (OSX),为什么我不能简单地重命名目录?

最佳答案

您处于不区分大小写的环境中。此外,在不使用 -A 的情况下添加将不会按照 Git 的理解处理 mv 的删除端。 警告!确保执行此操作时周围没有其他更改或未跟踪的文件,否则它们将作为此更改的一部分提交! git stash -u 首先执行此操作,然后执行 git stash pop 之后。继续:要解决此问题,请执行以下操作:

mv foo foo2
git add -A
git commit -m "renaming"
mv foo2 FOO
git add -A
git commit --amend -m "renamed foo to FOO"

这是更改工作目录、提交然后折叠 2 次提交的详细方法。您可以只移动索引中的文件,但对于 git 新手来说,它可能不太清楚发生了什么。较短的版本是

git mv foo foo2
git mv foo2 FOO
git commit -m "changed case of dir"

正如其中一条评论所建议的那样,您还可以进行交互式 rebase (git rebase -i HEAD~5 如果在 5 次提交之前引入了错误的案例)来修复那里的案例而不是错误的案例出现在历史的任何地方。如果你这样做,你必须小心,因为从那时起提交哈希将不同,其他人将不得不重新设置或重新 merge 他们的工作与最近的分支。

这与更正文件名有关:Is git not case sensitive?

关于macos - git mv 并且只改变目录的大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3011625/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com