例如我想破解angularjs的代码,所以我只是使用git clone https://github.com/angular/angular.git
克隆它,以模拟更新场景,我会使用git reset --hard HEAD~10
来丢弃最近的提交,git pull工作很大重置后,因为它可以轻松地从远程仓库获得更新,但是使用filter-branch,git pull很痛苦,我的问题是如何应对这种痛苦。
因为我只能破解我自己的回购,有时候一些原始回购可能有一些我不想要的目录,例如某些项目可能在repo中有node_modules,这里我把脚本文件夹作为例如,我应该在我的本地仓库中使用filter-branch删除,但在git filter-branch --tree-filter "rm scripts -rf"
之后,从原始仓库获取更新是错误的,
那么如何处理那些管理不善的repos我必须使用filter-branch删除操作,问题是如何在filter-branche操作之后获得更新,这个工作人员有一个很好的解决方案吗?
答案 0 :(得分:3)
使用filter-branch
时,您可以更改分支中每个提交的提交哈希值。这应该是最后的手段,而不是你定期达到的目的。
相反,只需使用
之类的东西从存储库中删除目录即可git rm -r scripts
然后提交。这将创建一个新的提交,删除脚本目录,同时保留先前的提交,因为它们已经存在。
"变更"在共享提交时应该强烈避免提交,包括filter-branch
。这些操作会导致各种并发症,其中一些现在正在发现。