我有一个git repo,包含文件夹A
。在本地,我克隆了这个仓库,但随后决定重命名该文件夹:
git mv A newfolder
git add -u newfolder
git commit -m "Folder rename"
现在,如果我在我的仓库中修改A/stable
,那么在本地执行git pull
,当然,我明白了:
newfolder/stable
但是,如果我在我的仓库中创建新文件A/fresh
,并在本地执行git pull
,我最终会
A/fresh
而不是newfolder/fresh
(也就是说,git创建一个名为A
的新文件夹,并将fresh
文件放在那里。为什么重命名不能用于新文件?
答案 0 :(得分:1)
Git不知道A
被newfolder
取代了。如果您在远程仓库中创建了A/fresh
文件,然后将其提取/合并到您的本地仓库中,它就别无选择,只能模仿远程结构并创建文件夹A
。
此处的解决方案是在创建A
文件之前将更改(newfolder
变为fresh
)推送到远程仓库。因此,您要创建newfolder/fresh
而不是A/fresh
。