似乎我有一个问题,即.gitignore
在我们的开发分支上添加了一个文件夹“Resources/”,而另一个开发人员错误地将文件提交到功能分支中的该文件夹(关闭开发)。当功能分支合并到开发分支时,它添加了文件,然后停止跟踪文件夹,现在认为“/Resources”和其中的文件不存在,因为它们不应该存在。
但是,正如我从克隆分支和切换到开发中看到的那样,我们现在遇到的问题是 Resources/ 下载中的文件,因为它们是在 git 中添加的,但没有被删除。
我最初的想法是从文件中删除“/Resources” .gitingore
,然后删除这些文件。但是,如果我尝试从中删除“/Resources”文件夹.gitignore
,git 认为它们是新的,并尝试添加文件夹和添加的文件。
编辑:我尝试使用git filter-branch
,正如其他帖子所提到的,但我收到一条错误消息“致命:错误修订版 'rm'”
git filter-branch --force --index-filter 'git rm -r --cached --ignore-unmatch Resources/' --prune-empty --tag-name-filter cat -- --all
有没有办法从被忽略的目录中删除文件?
您可以添加一个确认文件夹删除的提交Resource/
,同时保持它被忽略:
git rm -r --cached Resources/
git commit -m "Delete Resources content, now ignored"
git push
如果我们删除文件,git 中就没有跟踪更改。
是的,这就是添加Resources/
到.gitignore
.
目前,每次有人克隆存储库时,他们都必须手动删除文件
他们不会因为Resources/
不再跟踪(并且可以在本地重新创建)
如果该文件夹已被删除,则开发人员不必手动删除任何内容:本地文件将被忽略。
如果您需要从所有提交中删除资源:
git filter-repo
(基于python的工具)--filename-callback
) ”本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句