当在本地仓库上使用filter-branch时,如何从远程仓库中提取更新?

时间:2015-04-28 01:46:34

标签: git git-pull git-filter-branch

例如我想破解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"之后,从原始仓库获取更新是错误的,

过滤器分支后的git pull,它是错误的,并且难以管理冲突。

那么如何处理那些管理不善的repos我必须使用filter-branch删除操作,问题是如何在filter-branche操作之后获得更新,这个工作人员有一个很好的解决方案吗?

1 个答案:

答案 0 :(得分:3)

使用filter-branch时,您可以更改分支中每个提交的提交哈希值。这应该是最后的手段,而不是你定期达到的目的。

相反,只需使用

之类的东西从存储库中删除目录即可
git rm -r scripts

然后提交。这将创建一个新的提交,删除脚本目录,同时保留先前的提交,因为它们已经存在。

"变更"在共享提交时应该强烈避免提交,包括filter-branch。这些操作会导致各种并发症,其中一些现在正在发现。

相关问题