我知道这个问题的答案已经在很多问题中得到了回答,但我仍然遇到一个问题。
我已按照以下步骤操作:在 Git 存储库中,如何正确重命名目录?
我有一个在前端使用 Vue 的 Laravel 项目。结构大致如下:
- /Components
- /Layouts
- /Components
- Layout1.vue
- Layout2.vue
- /Pages
- /Shared
- /Components
我们想将其更新为:
- /components <= moving /Shared/Components here as well
- /layouts
- /partials
- Layout1.vue
- Layout2.vue
- /pages
建议使用 2 个步骤的过程:
git mv casesensitive tmp
git mv tmp CaseSensitive
我已经尝试过了,但没有成功。当尝试合并/签出/切换/cherry-pick/rebase到另一个分支时,我不断收到以下错误:
error: The following untracked working tree files would be overwritten by checkout:
resources/js/Components/Notifications.vue
resources/js/Components/PhoneCodeConfirmation.vue
resources/js/Components/SMSCredit.vue
Please move or remove them before you switch branches.
Aborting
因此,我尝试提交更改并在第一步后推送它们:
git mv resources/js/Components resources/js/components_temp
git commit -am "updated to temporary folder name"
git push
此时就可以了,因为文件夹名称完全不同。然后我正在做最后的重命名:
git mv resources/js/components_temp resources/js/components
git commit -am "updated to lowercase folder name"
git push
推动正确。但是,我仍然遇到同样的错误
following untracked working tree files would be overwritten by checkout
。
有人知道为什么吗?
编辑 我重命名为小写版本的任何文件夹都会发生这种情况。两步过程并不能阻止它。就像我的 git 工作树仍在跟踪旧名称一样,即使在执行上述步骤之后
由于所有解决方案似乎都不适合我,因此我使用了以下解决方法来使其发挥作用。我将所有内容复制到新路径:
cp -R resources/js resources/app
然后我就可以按照我想要的方式重命名该新文件夹中的每个目录/文件。然后我所要做的就是删除旧的并添加新的:
git rm resources/js
git add resources/app
(我还必须将我的应用程序指向新路径,但这是一个简单的部分)。