重命名目录时出现 Git 问题

问题描述 投票:0回答:1

我知道这个问题的答案已经在很多问题中得到了回答,但我仍然遇到一个问题。

我已按照以下步骤操作:在 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 工作树仍在跟踪旧名称一样,即使在执行上述步骤之后

git directory-structure file-rename
1个回答
0
投票

由于所有解决方案似乎都不适合我,因此我使用了以下解决方法来使其发挥作用。我将所有内容复制到新路径:

cp -R resources/js resources/app

然后我就可以按照我想要的方式重命名该新文件夹中的每个目录/文件。然后我所要做的就是删除旧的并添加新的:

git rm resources/js
git add resources/app

(我还必须将我的应用程序指向新路径,但这是一个简单的部分)。

© www.soinside.com 2019 - 2024. All rights reserved.